| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | class A ( a ) { | 
					
						
							|  |  |  | 	fun[#ci] init1() { | 
					
						
							| 
									
										
										
										
											2023-11-27 18:25:27 +09:00
										 |  |  | 		| b | | 
					
						
							|  |  |  | 		set b (+ 1 2); | 
					
						
							|  |  |  | 		set a b; | 
					
						
							|  |  |  | 		printf "init to %d\n" a; | 
					
						
							|  |  |  | 		return self; | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-27 00:08:59 +09:00
										 |  |  | 	{ | 
					
						
							|  |  |  | 		## this must not be allowed at this level. if it's allowed, | 
					
						
							|  |  |  | 		## it should be at the top-level which is above the class level. this is confusing. | 
					
						
							| 
									
										
										
										
											2023-11-27 18:25:27 +09:00
										 |  |  | 		| j | ##ERROR: syntax error - variable declaration disallowed in class init scope | 
					
						
							| 
									
										
										
										
											2023-11-27 00:08:59 +09:00
										 |  |  | 		set j 20; | 
					
						
							|  |  |  | 		printf ">>> %d\n" j; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | 	fun[#ci] init2() { | 
					
						
							| 
									
										
										
										
											2023-11-27 18:25:27 +09:00
										 |  |  | 		| b | | 
					
						
							|  |  |  | 		set b (+ 10 20); | 
					
						
							|  |  |  | 		set a b; | 
					
						
							|  |  |  | 		printf "init to %d\n" a; | 
					
						
							| 
									
										
										
										
											2023-11-27 00:08:59 +09:00
										 |  |  | 		return self; | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2024-05-26 23:18:26 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-02 00:33:34 +09:00
										 |  |  | fun String length() { ##ERROR: syntax error - 'String' not followed by ( but followed by 'length' | 
					
						
							| 
									
										
										
										
											2024-05-26 23:18:26 +09:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2024-07-09 23:44:24 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | class A ( 10 ) { ##ERROR: syntax error - not variable name '10' | 
					
						
							| 
									
										
										
										
											2024-07-09 23:44:24 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | class A ( a := 20 ) { ##ERROR: syntax error - block expression expected as 'class' body | 
					
						
							| 
									
										
										
										
											2024-07-09 23:44:24 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | class A ( ( (a) ) ) { ##ERROR: syntax error - not variable name | 
					
						
							| 
									
										
										
										
											2024-07-09 23:44:24 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## TODO: improve the reader to be aware that it's in the class definition context | 
					
						
							|  |  |  | ##       while reading '(a + )' and to flag + as an invalid variable name... | 
					
						
							|  |  |  | class A ( a + ) { ##ERROR: syntax error - no operand after binary selector '+' | 
					
						
							| 
									
										
										
										
											2024-07-09 23:44:24 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-13 17:40:27 +09:00
										 |  |  | --- | 
					
						
							| 
									
										
										
										
											2025-09-15 01:41:43 +09:00
										 |  |  | class A ( + ) { ##ERROR: syntax error - not variable name '+' | 
					
						
							| 
									
										
										
										
											2024-07-13 17:40:27 +09:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2024-08-28 00:58:56 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | fun xxx(x :: p q) { p := (x + 1); q := (x + 2) } | 
					
						
							| 
									
										
										
										
											2025-10-15 00:03:56 +09:00
										 |  |  | [a,[b]] := (xxx 20) ##ERROR: syntax error - bad lvalue - invalid token in tuple | 
					
						
							| 
									
										
										
										
											2024-08-28 00:58:56 +09:00
										 |  |  | printf "%d %d\n" a b | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							| 
									
										
										
										
											2024-09-18 21:41:00 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-15 00:03:56 +09:00
										 |  |  | 20 := 90 ##ERROR: syntax error - bad lvalue - invalid identifier '20' | 
					
						
							| 
									
										
										
										
											2024-08-28 00:58:56 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [a b] := 10 ##ERROR: syntax error - non-function call/non-message send disallowed | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-18 21:41:00 +09:00
										 |  |  | [] := 10 ##ERROR: syntax error - bad lvalue - blank expression | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | + + 100 ##ERROR: exception not handled - "unable to send + to #<PRIM> - '+' not found in Primitive" |