function parse_wf_body_element()

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]
  ));
}