// types int double string triangle pixmap circle rectangle textbox // keywords forward initialization on animation if for else exit print true false // event keys space leftarrow rightarrow uparrow downarrow leftmouse_down middlemouse_down rightmouse_down leftmouse_up middlemouse_up rightmouse_up mouse_move mouse_drag f1 akey skey dkey fkey hkey jkey kkey lkey wkey // punctuation ( ) { } [ ] ; , . // assignment operators // unlike C/C++/Java, assignment operators are NOT part of expressions // thus they don't need to be assigned a precedence level = += -= // unary operators with textual names // these "fake" functions are in the grammar in such a way // that they do not need to be assigned a precedence level sin cos tan asin acos atan sqrt abs floor random // graphical operators // these binary operators are in the grammar in such a way that // they don't need a precedence level touches near // mathematical operators * / + - % // logical operators < > <= >= == != ! && ||