function parse_sections()

in src/parser/WDL/hermes/wdl_parser.js [3417:3469]


function parse_sections(ctx) {
  var current = ctx.tokens.current();
  var rule = current != null ? table[53][current.id] : -1;
  var tree = new ParseTree(new NonTerminal(111, 'sections'));
  var ast_parameters;
  var subtree;
  var t;
  ctx.nonterminal = "sections";
  if (current == null) {
    throw new SyntaxError('Error: unexpected end of file');
  }
  if (rule == 13) { // $sections = $command
    ctx.rule = rules[13];
    tree.astTransform = new AstTransformSubstitution(0);
    subtree = parse_command(ctx);
    tree.add(subtree);
    return tree;
  }
  else if (rule == 14) { // $sections = $outputs
    ctx.rule = rules[14];
    tree.astTransform = new AstTransformSubstitution(0);
    subtree = parse_outputs(ctx);
    tree.add(subtree);
    return tree;
  }
  else if (rule == 15) { // $sections = $runtime
    ctx.rule = rules[15];
    tree.astTransform = new AstTransformSubstitution(0);
    subtree = parse_runtime(ctx);
    tree.add(subtree);
    return tree;
  }
  else if (rule == 16) { // $sections = $parameter_meta
    ctx.rule = rules[16];
    tree.astTransform = new AstTransformSubstitution(0);
    subtree = parse_parameter_meta(ctx);
    tree.add(subtree);
    return tree;
  }
  else if (rule == 17) { // $sections = $meta
    ctx.rule = rules[17];
    tree.astTransform = new AstTransformSubstitution(0);
    subtree = parse_meta(ctx);
    tree.add(subtree);
    return tree;
  }
  throw new SyntaxError(ctx.error_formatter.unexpected_symbol(
    ctx.nonterminal,
    ctx.tokens.current(),
    nonterminal_first[111],
    rules[17]
  ));
}