private a = 99;
b int = 9
g int
b=100; b=100

longs = 1
longs = 1l
longs = 1L

a = 10 as short
a = 10 as byte

a = true
a = false

a = c'x'
a = c"x"

a = "str"
a = "str 'thing' "
a = 'str "thing" '

a = r"a(b*)a"
a = r'a(b*)a'

public var myVar int = 9
private transient val xyz = 0.

//assert stmt
assert we
assert we 'message'

del me

break
continue
return
break thing
continue thing
return thing
throw thing

//imports
import com.my.thing, com.another.one
import com.my.thing as SomethingElse, com.another.one as myThing
from com.my import thing, another as Thinger

a = g==1//basic eq
await(thing; thing == 10)
await(val thing int: = 99; thing == 10)

//early collapse to lhs
a = g==1==2

//typedef
private typedef thing<x, y> = int


//funcdefs

def myfunc<X>(a int[], aa int[2], b int = 99, c=99, d int..., wonder (int, int) void, wonder2<Y, Z>(int, int) void ){
	stuff = otherstuff
}

lame = def <X>(a int[], aa int[2], b int = 99, c=99, d int..., wonder (int, int) void, wonder2<Y, Z>(int, int) void ){
	stuff = otherstuff
}

//named type
ar HashMap<String, ?> = null 

//classdef
private open class Myclass<X, Y>(a int, b = 99, c int[], d ArrayList<Set<String, int>>) < MySuper<Integer, int>(1,2) ~ MyIface, AnotherOne,{
}

@Annot(b=9) 
private open class Myclass<X, Y>(a int, b = 99, c int[], d ArrayList<Set<String, int>>) < MySuper<Integer, int>(1,2) ~ MyIface, AnotherOne,

private open class Myclass<X, Y>(a int, b = 99, c int[], d ArrayList<Set<String, int>>) < MySuper<Integer, int>(1,2) ~ MyIface, AnotherOne,

//define annotation
private annotation MyAnnot(arg1 int=  2){}

//enum def
enum Mine1{ONE, TWO}

enum Mine2{ONE(1, 2), TWO(3, 4)
	this(a int, b int){}
}

//fors

for(a = 9; a < 10; ){ a=1 } else{ b= 2}
for( a in another) { f=5} else{ t=6; }
parfor( a in another) { f=5} else{ t=6; }
parforsync( a in another) { f=5} else{ t=6; }

//match

match(a=1){
	case(String; a==3){}
	case( a String; a==3){}
	case( String or Object ; a==3){}
	else{}
}


//if stmt
if(true){a=1} else {b=2}
if(true){a=1} elif(2==3) { f=9} else {b=2}

//async_block
async{
	a = 3
	pre{
		b=4
	}
	post{
		f=9
	}
}


//while_stmt
while(a == 8){
	
}else {g=9}

while(a == 100; a int = 3){}

//loop

loop{
}

loop(a){

}

//trycatch

try(a=2){

} catch(e Thing){

} catch(another M or ZZ){

}finally{
	f=8
} 

//block_async
{s=d}!
{s=d}!(e)


//with

with(""){
	f = do
}


//trans_block
trans{
	a= 10
}

//init block
class MyClass{
	b=10;
	init{
		a int=10
	}
}

//sync block
sync{
	a=b
}

//onchange
onchange(a)
{
g=9}

//every
every(a){g=9}

//expr_stmt

a = sizeof g
a = b@
a = b as int
a = b if something else false
a = not g
a = b is not Object 
a = b is Object 
a = b isnot Object
a = x in thing
a = x not in thing
a = g++
a = ++g
a = --g
a = g--
a = -g
a = +g
a = a!
a = a!(thing)
a = d()
a = d(1,2)
a = d()()
a = d&(1,2)
a = d&(1,String)
a = d&(1, ? String)
a = d&(int, ? String)
a = d&(? int, ? String)

a = b:
a = b::

b = ax[1]
b = ax[1 ...]
b = ax[... 10]
b = ax[... 1, 2, 3]
b = ax[1 ... 10]

b = a()&(1, int)(2)[2, 3]:

b = a&

a = 'hi'
a = "hi"
a = "hi{aa}"
a = r"hi{aa}"

a = c'a' if true else c"a"

a = a\.b..c.d

a = 12l
a = 23.4
a = 3.f
a = 3.0
a = null
a = this.a
a = of.d

a = System.\out.println&("asd")()

a = changed.stuff()
a = [1,2,3]
a = {1 -> 2, 3-> 4}

a = this(1,2,3)
a = super(1,2,3, h=7)

a = new Thing(2)
a = new actor Thing(2)
a = actor Thing(2)

a = new int[2,3]
a = new ArrayList<String>[2,3]
a = new (int, int) int[2,3]

a = new Thing&(2)
a = new Thing&

a = String.class
a = String.class.getMethods()

a = for(a in [1,2,3]) { a=2 }

a = class<X, V> {}
a = class<X, V> {}

a = class<X, V> < Other<X> ~ IFace, IFace{} 
a = class<X, V> < Other<X> ~ IFace, IFace {}

a = actor of MyClass<String>{}
a = def <X>(a X){}
a = def <X>(a X) {a=2}

a = actor MyClass.A.B<String>(1,2)

x=for(a in [1,2,3]){ a }:

a = 2+1-9**4+1
a = 1+2*4 mod 2

a = true or false or false
a = b or c and d
a = b or c and d@ if t@ else w

a :=12
a int: = 12

a int:LocThing = 12
a int:LocThing:[] = 12


a = new int:LocalRef(2)
a = int:LocalRef(2)//on own


a=1;


//multiline stuff
def athing(a int,	
	b int){
	12;12
}


athing(1,
2)


f=dotop.a..b\.c

12=\not.very.nice()

d = [1,
2, 3]

//def with refs
def doings() {
	done : = 9
	done2 int: = 9
	done2 int:RefArry = 9
}

def sdf(){

	another()
	;;//nop

}