function led_type_e()

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