| 
									
										
										
										
											2024-10-05 00:05:52 +09:00
										 |  |  | class ##ERROR: syntax error - incomplete defintion of unnamed class for 'class' | 
					
						
							| 
									
										
										
										
											2024-07-22 15:06:45 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-05 00:05:52 +09:00
										 |  |  | class B ##ERROR: syntax error - incomplete definition of 'B' for 'class' | 
					
						
							| 
									
										
										
										
											2024-07-22 15:06:45 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class B ( ##ERROR: syntax error - block expression expected as 'class' body | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-18 22:21:11 +09:00
										 |  |  | class B + ##ERROR: syntax error - prohibited binary selector '+' | 
					
						
							| 
									
										
										
										
											2024-07-22 15:06:45 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-19 02:31:54 +09:00
										 |  |  | class A { | 
					
						
							|  |  |  | 	var a | 
					
						
							|  |  |  | 	| j | ##ERROR: syntax error - variable declaration disallowed | 
					
						
							| 
									
										
										
										
											2024-10-03 17:21:08 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-19 02:31:54 +09:00
										 |  |  | class 10 { ##ERROR: syntax error - invalid class name '10' for 'class' | 
					
						
							|  |  |  | 	var a | 
					
						
							| 
									
										
										
										
											2024-10-03 17:21:08 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class class { ##ERROR: syntax error - invalid class name 'class' for 'class' | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-19 02:31:54 +09:00
										 |  |  | class super.a { ##ERROR: syntax error - invalid class name 'super.a' for 'class' | 
					
						
							|  |  |  | 	var a | 
					
						
							| 
									
										
										
										
											2024-10-03 17:21:08 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-03 22:54:03 +09:00
										 |  |  | class a: 20 { ##ERROR: syntax error - invalid superclass name '20' after ':' for 'class' | 
					
						
							| 
									
										
										
										
											2024-10-03 17:21:08 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-03 22:54:03 +09:00
										 |  |  | class a: class { ##ERROR: syntax error - invalid superclass name 'class' after ':' for 'class' | 
					
						
							| 
									
										
										
										
											2024-10-03 17:21:08 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-03 22:54:03 +09:00
										 |  |  | class a: #(1 2) { ##ERROR: syntax error - no valid superclass name after ':' for 'class' | 
					
						
							| 
									
										
										
										
											2024-10-03 17:21:08 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-22 15:06:45 +09:00
										 |  |  | J := 11 | 
					
						
							|  |  |  | class B { | 
					
						
							| 
									
										
										
										
											2024-09-03 12:18:08 +09:00
										 |  |  | 	if (== J 10) { | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | 		fun[#ci] newA() {  ##ERROR: syntax error - function 'newA' defined with 'fun' prohibited in class initialziation context | 
					
						
							| 
									
										
										
										
											2024-07-22 15:06:45 +09:00
										 |  |  | 			return self | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} else { | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | 		fun[#ci] newB() { | 
					
						
							| 
									
										
										
										
											2024-07-22 15:06:45 +09:00
										 |  |  | 			return self | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | ##t2 := (B:newB) | 
					
						
							|  |  |  | ##t1 := (B:newA) ##error: exception not handled - "unable to send newA to B - 'newA' not found in B" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class B { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | J := 11 | 
					
						
							|  |  |  | if (== J 10) { | 
					
						
							|  |  |  | 	fun[#ci] B:newA() { | 
					
						
							|  |  |  | 		return self | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } else { | 
					
						
							|  |  |  | 	fun[#ci] B:newB() { | 
					
						
							|  |  |  | 		return self | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-22 15:06:45 +09:00
										 |  |  | t2 := (B:newB) | 
					
						
							|  |  |  | t1 := (B:newA) ##ERROR: exception not handled - "unable to send newA to B - 'newA' not found in B" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-19 02:31:54 +09:00
										 |  |  | class B { | 
					
						
							|  |  |  | 	var x | 
					
						
							| 
									
										
										
										
											2025-10-15 00:03:56 +09:00
										 |  |  | 	if (x > 0) { ##ERROR: syntax error - prohibited access to instance variable around 'x' | 
					
						
							| 
									
										
										
										
											2024-07-22 15:06:45 +09:00
										 |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-17 23:26:15 +09:00
										 |  |  | class B { | 
					
						
							|  |  |  | 	self.x := 20 ##ERROR: syntax error - unknown class-level variable name 'self.x' | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-19 02:31:54 +09:00
										 |  |  | class B { | 
					
						
							|  |  |  | 	var x y | 
					
						
							| 
									
										
										
										
											2023-12-02 03:35:59 +09:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-19 02:31:54 +09:00
										 |  |  | class X: B { | 
					
						
							|  |  |  | 	var a b | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | 	fun[#ci] new(t) { | 
					
						
							| 
									
										
										
										
											2023-12-02 03:35:59 +09:00
										 |  |  | 		| a | | 
					
						
							|  |  |  | 		set self.a t; | 
					
						
							|  |  |  | 		set a 100; | 
					
						
							|  |  |  | 		set self.b (* t 2); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-17 23:26:15 +09:00
										 |  |  | 		set self.c (fun(b) {  ##ERROR: syntax error - unknown class-level variable name 'self.c' | 
					
						
							| 
									
										
										
										
											2023-12-02 03:35:59 +09:00
										 |  |  | 			printf "xxxx [%d]\n" b; | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 		return self; | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-26 23:18:26 +09:00
										 |  |  | 	fun print() { | 
					
						
							| 
									
										
										
										
											2023-12-02 03:35:59 +09:00
										 |  |  | 		self.c (+ self.a self.b); | 
					
						
							|  |  |  | 		printf "a=%d b=%d\n" self.a self.b; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 	 | 
					
						
							| 
									
										
										
										
											2024-03-14 23:26:38 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-26 23:18:26 +09:00
										 |  |  | class X { | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | 	fun[#ci] xxx() { | 
					
						
							| 
									
										
										
										
											2024-04-05 01:26:02 +09:00
										 |  |  | 		return X; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2024-10-02 00:33:34 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | 	fun[#ci] qqq() { | 
					
						
							| 
									
										
										
										
											2024-04-05 01:26:02 +09:00
										 |  |  | 		return "hello" | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-02 00:33:34 +09:00
										 |  |  | 	fun String:length()  { ##ERROR: syntax error - class name 'String' before :'length' prohibited in class initialization context | 
					
						
							|  |  |  | 		return (core.basicSize self) | 
					
						
							| 
									
										
										
										
											2024-04-05 01:26:02 +09:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2024-03-14 23:26:38 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-05 01:26:02 +09:00
										 |  |  | --- | 
					
						
							| 
									
										
										
										
											2024-05-26 23:18:26 +09:00
										 |  |  | class X { | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | 	fun[#ci] xxx() { | 
					
						
							| 
									
										
										
										
											2024-04-05 01:26:02 +09:00
										 |  |  | 		return X; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | 	fun[#ci] qqq() { | 
					
						
							| 
									
										
										
										
											2024-04-05 01:26:02 +09:00
										 |  |  | 		return "hello" | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-29 23:19:25 +09:00
										 |  |  | ## this triggers a runtime error as J isn't a class name | 
					
						
							|  |  |  | fun J:ccc()  { ##ERROR: exception not handled - "J accessed without initialization" | 
					
						
							| 
									
										
										
										
											2024-04-05 01:26:02 +09:00
										 |  |  | 	return 999 | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2024-05-26 23:18:26 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							| 
									
										
										
										
											2024-05-29 23:19:25 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | X := 20 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## this also raises a runtime error as X isn't a class name | 
					
						
							|  |  |  | fun X:xxx() { ##ERROR: exception not handled - "not class" | 
					
						
							|  |  |  | 	return self | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-26 23:18:26 +09:00
										 |  |  | ## this must not be very useful as Array is an index item | 
					
						
							|  |  |  | ## and the clase instantiation method can't specify the size | 
					
						
							|  |  |  | ## you can't place an item in the arrya at all. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | fun[#ci] Array:boom() { | 
					
						
							| 
									
										
										
										
											2024-08-10 14:42:21 +09:00
										 |  |  | 	core.basicAtPut self 0 10 ##ERROR: exception not handled - "position(0) out of range - negative or greater than or equal to 0" | 
					
						
							| 
									
										
										
										
											2024-05-29 23:19:25 +09:00
										 |  |  | 	printf "%O" self | 
					
						
							| 
									
										
										
										
											2024-08-02 00:34:42 +09:00
										 |  |  | 	return self | 
					
						
							| 
									
										
										
										
											2024-05-26 23:18:26 +09:00
										 |  |  | } | 
					
						
							|  |  |  | Array:boom | 
					
						
							| 
									
										
										
										
											2024-05-29 23:19:25 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-19 02:31:54 +09:00
										 |  |  | class X { | 
					
						
							|  |  |  | 	var a b c | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | 	fun[#ci] new () { | 
					
						
							| 
									
										
										
										
											2024-05-29 23:19:25 +09:00
										 |  |  | 		self.a := 20 | 
					
						
							|  |  |  | 		return self | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	fun getA() { return self.a } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## the instance variables are not accessible in out-of-class method | 
					
						
							|  |  |  | ## defintionas there isn't a good way to know the class structure | 
					
						
							|  |  |  | ## as X isn't known in advance and can point to anything | 
					
						
							|  |  |  | fun X:get_a() { | 
					
						
							|  |  |  | 	return self.a ##ERROR: syntax error - not allowed to prefix with self | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | printf "%d\n" ((X:new):get_a) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-19 02:31:54 +09:00
										 |  |  | class F { | 
					
						
							|  |  |  | 	var a b c | 
					
						
							| 
									
										
										
										
											2024-05-29 23:19:25 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-19 02:31:54 +09:00
										 |  |  | class X { | 
					
						
							|  |  |  | 	var a b c  | 
					
						
							| 
									
										
										
										
											2024-05-29 23:19:25 +09:00
										 |  |  | 	fun oh() { | 
					
						
							|  |  |  | 		fun F:get_a() { | 
					
						
							|  |  |  | 			return super.a ##ERROR: syntax error - not allowed to prefix with super | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2024-07-22 18:28:21 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class F { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class F { ##ERROR: exception not handled - "prohibited redefintion of F | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class F { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | F := 30 ##ERROR: exception not handled - "prohibited redefintion of F | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class F { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | F := (class { ##ERROR: exception not handled - "prohibited redefintion of F" | 
					
						
							|  |  |  | }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | F := (class { | 
					
						
							|  |  |  | }) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-06 00:18:24 +09:00
										 |  |  | F := (class F { ##ERROR: exception not handled - "prohibited redefintion of F" | 
					
						
							| 
									
										
										
										
											2024-07-22 18:28:21 +09:00
										 |  |  | }) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-06 00:18:24 +09:00
										 |  |  | ##  TDOO: do we need to allow this? | 
					
						
							| 
									
										
										
										
											2024-07-22 18:28:21 +09:00
										 |  |  | ##F := 30 | 
					
						
							| 
									
										
										
										
											2024-10-06 00:18:24 +09:00
										 |  |  | ##class F { ##E R R O R: exception not handled - "prohibited redefintion of F" | 
					
						
							| 
									
										
										
										
											2024-07-22 18:28:21 +09:00
										 |  |  | ##} | 
					
						
							| 
									
										
										
										
											2024-10-02 00:33:34 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | class a { | 
					
						
							|  |  |  | 	fun() { ##ERROR: syntax error - unnamed function defined with 'fun' prohibited in class initialziation context | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2024-10-03 22:54:03 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-19 02:31:54 +09:00
										 |  |  | class X10 { | 
					
						
							|  |  |  | 	var x | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  |      fun[#ci] make() { x := 1234; return self; }; | 
					
						
							| 
									
										
										
										
											2024-10-03 22:54:03 +09:00
										 |  |  |      fun get-x() { return x }; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | X11 := (class:X10 { | 
					
						
							|  |  |  | }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class X11 { ##ERROR: exception not handled - "prohibited redefintion of X11" | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2024-10-06 00:18:24 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class String { ##ERROR: exception not handled - "incompatible redefintion of String" | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2024-10-07 21:46:41 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | class[] { ##ERROR: syntax error - empty attribute list on unnamed class for 'class' | 
					
						
							| 
									
										
										
										
											2024-10-07 21:46:41 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | class[] Kuduro { ##ERROR: syntax error - empty attribute list on 'Kuduro' for 'class' | 
					
						
							| 
									
										
										
										
											2024-10-07 21:46:41 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | class[#byte #limited #char] Kuduro { ##ERROR: syntax error - conflicting or duplicate class attribute name '#char' | 
					
						
							| 
									
										
										
										
											2024-10-07 21:46:41 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | class[#byte #limited #final #limited] Kuduro { ##ERROR: syntax error - conflicting or duplicate class attribute name '#limited' | 
					
						
							| 
									
										
										
										
											2024-10-07 21:46:41 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | class[#byte #bytes] Kuduro { ##ERROR: syntax error - unrecognized class attribute name '#bytes' | 
					
						
							| 
									
										
										
										
											2024-10-07 21:46:41 +09:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2024-10-20 17:37:51 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | class Kuduro (a b c) { | 
					
						
							| 
									
										
										
										
											2024-10-20 17:37:51 +09:00
										 |  |  | 	var d e | 
					
						
							|  |  |  | 	var a  ##ERROR: syntax error - duplicate instance variable name 'a' | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							| 
									
										
										
										
											2024-10-20 20:12:31 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | class Kuduro (a (b) c) { | 
					
						
							| 
									
										
										
										
											2024-10-20 17:37:51 +09:00
										 |  |  | 	var d e | 
					
						
							| 
									
										
										
										
											2024-10-20 20:12:31 +09:00
										 |  |  | 	var b ##ERROR: syntax error - duplicate instance variable name 'b' | 
					
						
							| 
									
										
										
										
											2024-10-20 17:37:51 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-20 20:12:31 +09:00
										 |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | class Kuduro (a (b) c) { | 
					
						
							| 
									
										
										
										
											2024-10-20 17:37:51 +09:00
										 |  |  | 	var d e | 
					
						
							|  |  |  | 	var(#class) b ##ERROR: syntax error - duplicate class variable name 'b' | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2025-09-16 23:47:50 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## TODO: some of these can be detected as an error at the compile time.. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class[#b] X (a) { | 
					
						
							|  |  |  | 	fun[#ci] new() { | 
					
						
							|  |  |  | 		## the instance variable is a byte because the class is a byte-oriented class | 
					
						
							|  |  |  | 		self.a := -20 ##ERROR: exception not handled - "negative number - -20" | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | X:new | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class[#b] X (a) { | 
					
						
							|  |  |  | 	fun[#ci] new() { | 
					
						
							|  |  |  | 		## the instance variable is a byte because the class is a byte-oriented class | 
					
						
							|  |  |  | 		self.a := -20 ##ERROR: exception not handled - "negative number - -20" | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Y: X { ##ERROR: exception not handled - "incompatible byte superclass X with oop class" | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2025-09-26 00:32:33 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## you can't send a binary message to an object the receiver:message syntax. | 
					
						
							|  |  |  | ## you must omit the colon for the binary message | 
					
						
							|  |  |  | ## it must be '20 == 40' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | fun Number:==(b) { return (core.+ self b) } | 
					
						
							|  |  |  | 20 :== 40  ##ERROR: syntax error - prohibited binary selector '==' |