function nud_type_e()

in src/parser/WDL/hermes/wdl_parser.js [1945:1982]


function nud_type_e(ctx) {
  var tree = new ParseTree(new NonTerminal(76, 'type_e'));
  var current = ctx.tokens.current();
  var ast_parameters;
  ctx.nonterminal = "type_e";
  if (!current) {
    return tree;
  }
  if (rule_first[76].indexOf(current.id) != -1) {
    // $type_e = :type <=> :lsquare $_gen17 :rsquare -> Type( name=$0, subtype=$2 )
    ctx.rule = rules[76];
    tree.astTransform = new AstTransformSubstitution(0);
    tree.nudMorphemeCount = 1;
    tree.add(expect(ctx, 41));
  }
  else if (rule_first[77].indexOf(current.id) != -1) {
    // $type_e = :type <=> :qmark -> OptionalType( innerType=$0 )
    ctx.rule = rules[77];
    tree.astTransform = new AstTransformSubstitution(0);
    tree.nudMorphemeCount = 1;
    tree.add(expect(ctx, 41));
  }
  else if (rule_first[78].indexOf(current.id) != -1) {
    // $type_e = :type <=> :plus -> NonEmptyType( innerType=$0 )
    ctx.rule = rules[78];
    tree.astTransform = new AstTransformSubstitution(0);
    tree.nudMorphemeCount = 1;
    tree.add(expect(ctx, 41));
  }
  else if (rule_first[79].indexOf(current.id) != -1) {
    // $type_e = :type
    ctx.rule = rules[79];
    tree.astTransform = new AstTransformSubstitution(0);
    tree.nudMorphemeCount = 1;
    tree.add(expect(ctx, 41));
  }
  return tree;
}