$?a           ##ERROR: syntax error - '?' prohibited as first character after '$'

---

$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 - : disallowed

---

## 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'

---

#**a     ##ERROR: syntax error - invalid binary selector character 'a' after #**

---

abc- := 20 ##ERROR: syntax error - '-' prohibited as last character of identifier or identifier segment

---

self.g- := 20 ##ERROR: syntax error - '-' prohibited as last character of identifier or identifier segment

---

self.-g := 20 ##ERROR: syntax error - '-' prohibited as first character of identifier or identifier segment

---

if.abc := 20 ##ERROR: syntax error - wrong multi-segment identifier

---

abc. := 20 ##ERROR: syntax error - blank segment after 'abc.'

---

abc.? := 20 ##ERROR: syntax error - '?' prohibited as first character of identifier or identifier segment after 'abc.'


---
- := 20 ##ERROR: syntax error - bad lvalue - invalid element - -

---

+++ := 20 ##ERROR: syntax error - bad lvalue - invalid element - +++

---

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

---

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
