('+=' | '+' | '-' | '*' | '/' | '%' | '===' | '<<' | '>>>' | '>>' | '<=' | '<' |
'==' | '!=' | '>=' | '>' | '&' | '|' | '^' | '='):c]
[('CONST' | 'SYMBOL') anything:n ?[n.constructor == String]] -> n,
['SYMBOL' 'to'] name:n name*:fs trans:b
{['TO', n, fs, [], b]}:tmp
GPLocalVarFinder.start(tmp):locals
-> (function() {tmp[3] = locals; return tmp})()
| ['SYMBOL' 'method'] name:c name:n name*:fs trans:b
{['METHOD', c, n, fs, [], b]}:tmp
GPLocalVarFinder.start(tmp):locals
-> (function() {tmp[4] = locals; return tmp})()
| ['SYMBOL' 'function'] name*:fs trans:b
{['FUNCTION', fs, [], b]}:tmp
GPLocalVarFinder.start(tmp):locals
-> (function() {tmp[2] = locals; return tmp})()
| ['SYMBOL' 'for'] name:n trans*:bs
| ['SYMBOL' 'repeat'] trans:l trans:b
| ['SYMBOL' 'while'] trans:l trans:b
| ['SYMBOL' 'if'] trans*:bs
| name:n ['SYMBOL' ('=' | '+='):op] trans:b
| trans:a infixOp:op trans:b
-> ['REPORTER', op, a, b]