# todo: calls (property access and function calls) ::= ::= { } ::= "{" "}" ::= | | | | | | | | | ::= "let" "=" ";" ::= { call "." } "=" ";" ::= "fn" ::= "(" ")" ::= "if" { } ::= "else" ( | ) ::= "loop" ::= "while" ::= "break" ";" ::= "return" { } ";" ::= ";" ::= ::= { "or" } ::= { "and" } ::= { ("!=" | "==") } ::= { (">" | "<" | ">=" | "<=") } ::= { ("-" | "+") } ::= { ( "*" | "/" | "%" ) } ::= { ( "not" | "-" ) } ::= { ( "(" ")" | "." ) } ::= | | | | | "false" | "true" | "null" | "(" ")" ::= "{}" ::= "[" "]" ::= { { "," } { "," } } ::= { { "," } { "," } }