in src/parser/WDL/hermes/wdl_parser.js [3831:3871]
function parse_while_loop(ctx) {
var current = ctx.tokens.current();
var rule = current != null ? table[4][current.id] : -1;
var tree = new ParseTree(new NonTerminal(62, 'while_loop'));
var ast_parameters;
var subtree;
var t;
ctx.nonterminal = "while_loop";
if (current == null) {
throw new SyntaxError('Error: unexpected end of file');
}
if (rule == 71) { // $while_loop = :while :lparen $e :rparen :lbrace $_gen10 :rbrace -> WhileLoop( expression=$2, body=$5 )
ctx.rule = rules[71];
ast_parameters = {
'expression': 2,
'body': 5,
}
tree.astTransform = new AstTransformNodeCreator('WhileLoop', ast_parameters);
t = expect(ctx, 6); // :while
tree.add(t);
t = expect(ctx, 43); // :lparen
tree.add(t);
subtree = parse_e(ctx);
tree.add(subtree);
t = expect(ctx, 5); // :rparen
tree.add(t);
t = expect(ctx, 42); // :lbrace
tree.add(t);
subtree = parse__gen10(ctx);
tree.add(subtree);
t = expect(ctx, 51); // :rbrace
tree.add(t);
return tree;
}
throw new SyntaxError(ctx.error_formatter.unexpected_symbol(
ctx.nonterminal,
ctx.tokens.current(),
nonterminal_first[62],
rules[71]
));
}