function parse_wf_output_declaration_syntax()

in src/parser/WDL/hermes/wdl_parser.js [3673:3708]


function parse_wf_output_declaration_syntax(ctx) {
  var current = ctx.tokens.current();
  var rule = current != null ? table[6][current.id] : -1;
  var tree = new ParseTree(new NonTerminal(64, 'wf_output_declaration_syntax'));
  var ast_parameters;
  var subtree;
  var t;
  ctx.nonterminal = "wf_output_declaration_syntax";
  if (current == null) {
    throw new SyntaxError('Error: unexpected end of file');
  }
  if (rule == 64) { // $wf_output_declaration_syntax = $type_e :identifier :equal $e -> WorkflowOutputDeclaration( type=$0, name=$1, expression=$3 )
    ctx.rule = rules[64];
    ast_parameters = {
      'type': 0,
      'name': 1,
      'expression': 3,
    }
    tree.astTransform = new AstTransformNodeCreator('WorkflowOutputDeclaration', ast_parameters);
    subtree = parse_type_e(ctx);
    tree.add(subtree);
    t = expect(ctx, 39); // :identifier
    tree.add(t);
    t = expect(ctx, 45); // :equal
    tree.add(t);
    subtree = parse_e(ctx);
    tree.add(subtree);
    return tree;
  }
  throw new SyntaxError(ctx.error_formatter.unexpected_symbol(
    ctx.nonterminal,
    ctx.tokens.current(),
    nonterminal_first[64],
    rules[64]
  ));
}