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
 |