in src/parser/WDL/hermes/wdl_parser.js [2886:2919]
function parse_declaration(ctx) {
var current = ctx.tokens.current();
var rule = current != null ? table[7][current.id] : -1;
var tree = new ParseTree(new NonTerminal(65, 'declaration'));
var ast_parameters;
var subtree;
var t;
ctx.nonterminal = "declaration";
if (current == null) {
throw new SyntaxError('Error: unexpected end of file');
}
if (rule == 36) { // $declaration = $type_e :identifier $_gen9 -> Declaration( type=$0, name=$1, expression=$2 )
ctx.rule = rules[36];
ast_parameters = {
'type': 0,
'name': 1,
'expression': 2,
}
tree.astTransform = new AstTransformNodeCreator('Declaration', ast_parameters);
subtree = parse_type_e(ctx);
tree.add(subtree);
t = expect(ctx, 39); // :identifier
tree.add(t);
subtree = parse__gen9(ctx);
tree.add(subtree);
return tree;
}
throw new SyntaxError(ctx.error_formatter.unexpected_symbol(
ctx.nonterminal,
ctx.tokens.current(),
nonterminal_first[65],
rules[36]
));
}