::= { } ::= "function" "(" [ ] ")" "->" ::= { "," } ::= ::= "int" | "bool" ::= "{" "}" ::= { } ::= | | | | | | ::= [ "=" ] ";" ::= "=" ";" ::= "return" [ ] ";" ::= ";" ::= "if" "(" ")" [ "else" ] ::= "while" "(" ")" ::= "for" "(" [ ] ";" [ ] ";" [ ] ")" ::= [ "=" ] | ::= ::= { "||" } ::= { "&&" } ::= { ( "==" | "!=" ) } ::= { ( "<" | ">" | "<=" | ">=" ) } ::= { ( "+" | "-" ) } ::= { ( "*" | "/" | "%" ) } ::= ( "!" | "-" ) | ::= | | | | "(" ")" ::= "(" [ ] ")" ::= { "," } ::= { | } ::= { } ::= "true" | "false" ::= "a" | ... | "z" | "A" | ... | "Z" | "_" ::= "0" | ... | "9"