eval(readFile('Compiled_JavaScript_Compiler')) ometa LoopJSParser <: JSParser { isKeyword :x = ?(x == 'loop' || x == 'stop') | super(`isKeyword, x), stmt = "loop" stmt:s -> [`loop, s] | "stop" sc -> [`stop] | ^stmt } ometa LoopJSTranslator1 <: JSTranslator { loop curlyTrans:body -> ('while (true) { ' + body + '}'), stop -> ('break;') } a = LoopJSParser.matchAll('loop{stop}', "topLevel") b = LoopJSTranslator.match(a, "trans") eval(b)