in src/parser/WDL/hermes/wdl_parser.js [3537:3610]
function parse_wf_body_element(ctx) {
var current = ctx.tokens.current();
var rule = current != null ? table[60][current.id] : -1;
var tree = new ParseTree(new NonTerminal(118, 'wf_body_element'));
var ast_parameters;
var subtree;
var t;
ctx.nonterminal = "wf_body_element";
if (current == null) {
throw new SyntaxError('Error: unexpected end of file');
}
if (rule == 41) { // $wf_body_element = $call
ctx.rule = rules[41];
tree.astTransform = new AstTransformSubstitution(0);
subtree = parse_call(ctx);
tree.add(subtree);
return tree;
}
else if (rule == 42) { // $wf_body_element = $declaration
ctx.rule = rules[42];
tree.astTransform = new AstTransformSubstitution(0);
subtree = parse_declaration(ctx);
tree.add(subtree);
return tree;
}
else if (rule == 43) { // $wf_body_element = $while_loop
ctx.rule = rules[43];
tree.astTransform = new AstTransformSubstitution(0);
subtree = parse_while_loop(ctx);
tree.add(subtree);
return tree;
}
else if (rule == 44) { // $wf_body_element = $if_stmt
ctx.rule = rules[44];
tree.astTransform = new AstTransformSubstitution(0);
subtree = parse_if_stmt(ctx);
tree.add(subtree);
return tree;
}
else if (rule == 45) { // $wf_body_element = $scatter
ctx.rule = rules[45];
tree.astTransform = new AstTransformSubstitution(0);
subtree = parse_scatter(ctx);
tree.add(subtree);
return tree;
}
else if (rule == 46) { // $wf_body_element = $wf_outputs
ctx.rule = rules[46];
tree.astTransform = new AstTransformSubstitution(0);
subtree = parse_wf_outputs(ctx);
tree.add(subtree);
return tree;
}
else if (rule == 47) { // $wf_body_element = $wf_parameter_meta
ctx.rule = rules[47];
tree.astTransform = new AstTransformSubstitution(0);
subtree = parse_wf_parameter_meta(ctx);
tree.add(subtree);
return tree;
}
else if (rule == 48) { // $wf_body_element = $wf_meta
ctx.rule = rules[48];
tree.astTransform = new AstTransformSubstitution(0);
subtree = parse_wf_meta(ctx);
tree.add(subtree);
return tree;
}
throw new SyntaxError(ctx.error_formatter.unexpected_symbol(
ctx.nonterminal,
ctx.tokens.current(),
nonterminal_first[118],
rules[48]
));
}