## the expression begins with a dictionary expression. 
## it is not a function name and can'be be invoked.
#{100:1, 200: 3}; ##ERROR: syntax error - invalid callable

---

## you must enclose the binary expression with parentheses
## i := (i + 20)

i:=0;
while(i < 20) {
	printf "hello world 안녕하신가\n"
	i := i + 20 ##ERROR: syntax error - prohibited binary operator - +
}

---

if  ##ERROR: syntax error - no conditional expression after if

---

if (< 2 3) elif  ##ERROR: syntax error - block expression expected as 'if' body

---

if (< 2 3) {} elif true else  ##ERROR: syntax error - block expression expected as 'elif' body

---

if else ##ERROR: syntax error - special symbol not to be used as variable name

---

if elif else ##ERROR: syntax error - special symbol not to be used as variable name

---

if (< 20 30) ##ERROR: syntax error - block expression expected as 'if' body

---

if (< 20 30) {
	printf "ok\n"
} { ##ERROR: syntax error - redundant expression prohibited after 'if' body
	printf "ok2\n"
}

---

if (< 20 30) else { ##ERROR: syntax error - block expression expected as 'if' body
	printf "ok\n"
}


---

catch (e) {} ##ERROR: syntax error - catch without try

---

try {} catch ##ERROR: syntax error - no exception variable for 'catch'

---

try {
	throw "excetion message"
} catch (e a) { ##ERROR: syntax error - not proper exception variable
	printf "EXCEPTION - %s\n" e
}

---

try { throw "1111"; } catch (e) ##ERROR: syntax error - block expression expected as 'catch' body

---

try { throw "1111"; } catch (e) {
	printf "EXCEPTION - %s\n" e
} 20 ##ERROR: syntax error - redundant expression prohibited after

---

{
	| a |

	a := 30
	fun a:get_999() { ##ERROR: exception not handled - "not class"
		return  999;
	}
}


---

fun a:get_999() { ##ERROR: exception not handled - "a accessed without initialization"
	return  999;
}