239 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			239 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| $?a           ##ERROR: syntax error - invalid dollar-prefixed identifier '$?a'
 | |
| 
 | |
| ---
 | |
| 
 | |
| -0e00    ##ERROR: syntax error - illegal erorr literal '-0e00'
 | |
| 
 | |
| ---
 | |
| 
 | |
| +0e11    ##ERROR: syntax error - illegal erorr literal '+0e11'
 | |
| 
 | |
| ---
 | |
| 
 | |
| -0p00    ##ERROR: syntax error - illegal smptr literal '-0p00'
 | |
| 
 | |
| ---
 | |
| 
 | |
| +0p11    ##ERROR: syntax error - illegal smptr literal '+0p11'
 | |
| 
 | |
| ---
 | |
| 
 | |
| $include     ##ERROR: syntax error - '$include' target not specified
 | |
| 
 | |
| ---
 | |
| 
 | |
| $include 10    ##ERROR: syntax error - '$include' target expected in place of '10'
 | |
| 
 | |
| ---
 | |
| 
 | |
| 0x12.34   ##ERROR: syntax error - invalid use of decimal point after radixed number '0x12'
 | |
| 
 | |
| ---
 | |
| 
 | |
| 0b ##ERROR: syntax error - invalid numeric literal with no digit after '0b'
 | |
| 
 | |
| ---
 | |
| 
 | |
| 16r ##ERROR: syntax error - invalid numeric literal with no digit after '16r'
 | |
| ---
 | |
| 
 | |
| ##
 | |
| 
 | |
| x := (+ 10 20) "aaaa"; ##ERROR: syntax error - too many rvalues
 | |
| 
 | |
| ---
 | |
| 
 | |
| ##
 | |
| 
 | |
| x := (10 +); ##ERROR: syntax error - no operand after binary selector
 | |
| 
 | |
| 
 | |
| ---
 | |
| 
 | |
| 10 + ##ERROR: syntax error - no operand after binary selector '+'
 | |
| 
 | |
| ---
 | |
| 
 | |
| ## you can't have another colon before the method..
 | |
| (obj: :method) ##ERROR: syntax error - prohibited colon around ':'
 | |
| 
 | |
| ---
 | |
| 
 | |
| ## while EOL is ignored in explicitly parenthesized XLIST, a semicolon must not be.
 | |
| (printf
 | |
| 	"hello, world\n"
 | |
| )
 | |
| 
 | |
| (printf; ##ERROR: syntax error - unexpected semicolon
 | |
| 	"hello, world\n"
 | |
| )
 | |
| 
 | |
| ---
 | |
| 
 | |
| ## semicolon inside #{} must raise a syntax error
 | |
| 
 | |
| a := #{
 | |
| 	"k1":
 | |
| 	"hello k1\n",
 | |
| 	"k2":
 | |
| 	"hello k2\n";   ##ERROR: syntax error - unexpected semicolon
 | |
| };
 | |
| 
 | |
| ---
 | |
| 
 | |
| {
 | |
| 	;;;
 | |
| 
 | |
| (do
 | |
| 	(printf "hello\n")
 | |
| 	(printf "hello\n")
 | |
| );;
 | |
| 
 | |
| k := #[10 ; 20 ]; ##ERROR: syntax error - unexpected semicolon
 | |
| 
 | |
| }
 | |
| 
 | |
| ---
 | |
| 
 | |
| ## a code point greater than 255 is illegal in the character literal prefix fixed with b.
 | |
| 
 | |
| printf "[%c] [0x%x] [%d]\n" '★' '★' 0x2605;
 | |
| printf "[%c]\n" b'★';  ##ERROR: syntax error - wrong character literal
 | |
| 
 | |
| ---
 | |
| 
 | |
| ## #b can be followed by [ or binary digits.
 | |
| 
 | |
| printf "%O\n" #b[ 10 20 30 ];
 | |
| printf "%010b\n" 0b0101;
 | |
| printf "%O\n" 0bxy; ##ERROR: syntax error - invalid numeric literal character 'x' after '0b'
 | |
| 
 | |
| ---
 | |
| 
 | |
| printf "%O\n" 0b12xy ##ERROR: syntax error - invalid numeric literal character '2' after '0b1'
 | |
| 
 | |
| ---
 | |
| 
 | |
| printf "%O\n" 0b0b11 ##ERROR: syntax error - invalid numeric literal character 'b' after '0b0'
 | |
| 
 | |
| ---
 | |
| 
 | |
| printf "%O\n" 0o0127890 ##ERROR: syntax error - invalid numeric literal character '8' after '0o0127'
 | |
| 
 | |
| ---
 | |
| 
 | |
| printf "%O\n"  35rabcdefghijklzabcd ##ERROR: syntax error - invalid numeric literal character 'z' after '35rabcdefghijkl'
 | |
| 
 | |
| 
 | |
| ---
 | |
| 
 | |
| + 12389127398127389217382197283197321897r11221 1 ##ERROR: syntax error - unsupported radix '12389127398127389217382197283197321897' before 'r'
 | |
| 
 | |
| ---
 | |
| 
 | |
| + 0000r11221 1 ##ERROR: syntax error - unsupported radix '0000' before 'r'
 | |
| ---
 | |
| 
 | |
| + 0r11221 1 ##ERROR: syntax error - unsupported radix '0' before 'r'
 | |
| 
 | |
| ---
 | |
| 
 | |
| + 1r11221 1 ##ERROR: syntax error - unsupported radix '1' before 'r'
 | |
| 
 | |
| ---
 | |
| 
 | |
| + 37r11221 1 ##ERROR: syntax error - unsupported radix '37' before 'r'
 | |
| 
 | |
| ---
 | |
| 
 | |
| printf if; ##ERROR: syntax error - 'if' prohibited in this context
 | |
| 
 | |
| ---
 | |
| 
 | |
| (10 + 20 30) ##ERROR: syntax error - redundant operand '30'
 | |
| 
 | |
| ---
 | |
| 
 | |
| #234 ##ERROR: syntax error - '2' prohibited as first character of symbol
 | |
| 
 | |
| ---
 | |
| 
 | |
| abc- := 20 ##ERROR: syntax error - illegal identifier 'abc-'
 | |
| 
 | |
| ---
 | |
| 
 | |
| self.g- := 20 ##ERROR: syntax error - illegal identifier 'g-'
 | |
| 
 | |
| ---
 | |
| 
 | |
| self.-g := 20 ##ERROR: syntax error - illegal identifier '-g'
 | |
| 
 | |
| ---
 | |
| 
 | |
| if.abc := 20 ##ERROR: syntax error - wrong multi-segment identifier
 | |
| 
 | |
| ---
 | |
| 
 | |
| abc. := 20 ##ERROR: syntax error - blank segment after 'abc.'
 | |
| 
 | |
| ---
 | |
| 
 | |
| abc.? := 20 ##ERROR: syntax error - wrong multi-segment identifier 'abc.?'
 | |
| 
 | |
| ---
 | |
| 
 | |
| - := 20 ##ERROR: syntax error - bad lvalue - invalid identifier '-'
 | |
| 
 | |
| ---
 | |
| 
 | |
| +++ := 20 ##ERROR: syntax error - bad lvalue - invalid identifier '+++'
 | |
| 
 | |
| ---
 | |
| 
 | |
| 1 + + + ##ERROR: syntax error - prohibited binary selector '+'
 | |
| 
 | |
| ---
 | |
| 
 | |
| 1 * 2 3 - 4 ##ERROR: syntax error - prohibited binary selector '-'
 | |
| 
 | |
| ---
 | |
| 1 * 2 3 4 ##ERROR: syntax error - redundant operand '4'
 | |
| 
 | |
| ---
 | |
| 
 | |
| 1 \ 2 ##ERROR: syntax error - stray backslash
 | |
| 
 | |
| ---
 | |
| 
 | |
| aaa := ##ERROR: syntax error - missing rvalue for 'aaa'
 | |
| 
 | |
| ---
 | |
| 
 | |
| throw ##ERROR: syntax error - no value or expression after 'throw'
 | |
| 
 | |
| ---
 | |
| 
 | |
| throw throw ##ERROR: syntax error - 'throw' prohibited in this context
 | |
| 
 | |
| ---
 | |
| 
 | |
| class X {
 | |
|      x := {
 | |
|           |a| ##ERROR: syntax error - variable declaration disallowed in class init scope
 | |
|           a := 20
 | |
|      }
 | |
| }
 | |
| 
 | |
| ---
 | |
| 
 | |
| do ; ## this is ok
 | |
| do 1; ## this is ok
 | |
| 
 | |
| k := (do 1 2 3); ## ok too
 | |
| ## do doesn't allow variable declaration
 | |
| do { | k | set k 10 };
 | |
| do | k | {set k 10;}; ##ERROR: syntax error - variable declaration disallowed in 'do' context
 | |
| 
 | |
| ---
 | |
| k := (do | k | {set k 10;}) ##ERROR: syntax error - variable declaration disallowed in 'do' context
 |