in src/parser/WDL/hermes/wdl_parser.js [1983:2022]
function led_type_e(left, ctx) {
var tree = new ParseTree(new NonTerminal(76, 'type_e'))
var current = ctx.tokens.current()
var ast_parameters;
ctx.nonterminal = "type_e";
if (current.id == 38) { // :lsquare
// $type_e = :type <=> :lsquare $_gen17 :rsquare -> Type( name=$0, subtype=$2 )
ctx.rule = rules[76];
ast_parameters = {
'name': 0,
'subtype': 2,
}
tree.astTransform = new AstTransformNodeCreator('Type', ast_parameters);
tree.add(left);
tree.add(expect(ctx, 38)); // :lsquare
tree.add(parse__gen17(ctx));
tree.add(expect(ctx, 28)); // :rsquare
}
if (current.id == 18) { // :qmark
// $type_e = :type <=> :qmark -> OptionalType( innerType=$0 )
ctx.rule = rules[77];
ast_parameters = {
'innerType': 0,
}
tree.astTransform = new AstTransformNodeCreator('OptionalType', ast_parameters);
tree.add(left);
tree.add(expect(ctx, 18)); // :qmark
}
if (current.id == 21) { // :plus
// $type_e = :type <=> :plus -> NonEmptyType( innerType=$0 )
ctx.rule = rules[78];
ast_parameters = {
'innerType': 0,
}
tree.astTransform = new AstTransformNodeCreator('NonEmptyType', ast_parameters);
tree.add(left);
tree.add(expect(ctx, 21)); // :plus
}
return tree;
}