in src/parser/WDL/hermes/wdl_parser.js [1496:1663]
function nud_e(ctx) {
var tree = new ParseTree(new NonTerminal(79, 'e'));
var current = ctx.tokens.current();
var ast_parameters;
ctx.nonterminal = "e";
if (!current) {
return tree;
}
else if (rule_first[93].indexOf(current.id) != -1) {
// $e = :not $e -> LogicalNot( expression=$1 )
ctx.rule = rules[93];
ast_parameters = {
'expression': 1,
}
tree.astTransform = new AstTransformNodeCreator('LogicalNot', ast_parameters);
tree.nudMorphemeCount = 2;
tree.add(expect(ctx, 15));
tree.add(parse_e_internal(ctx, get_prefix_binding_power_e(15)));
tree.isPrefix = true;
}
else if (rule_first[94].indexOf(current.id) != -1) {
// $e = :plus $e -> UnaryPlus( expression=$1 )
ctx.rule = rules[94];
ast_parameters = {
'expression': 1,
}
tree.astTransform = new AstTransformNodeCreator('UnaryPlus', ast_parameters);
tree.nudMorphemeCount = 2;
tree.add(expect(ctx, 21));
tree.add(parse_e_internal(ctx, get_prefix_binding_power_e(21)));
tree.isPrefix = true;
}
else if (rule_first[95].indexOf(current.id) != -1) {
// $e = :dash $e -> UnaryNegation( expression=$1 )
ctx.rule = rules[95];
ast_parameters = {
'expression': 1,
}
tree.astTransform = new AstTransformNodeCreator('UnaryNegation', ast_parameters);
tree.nudMorphemeCount = 2;
tree.add(expect(ctx, 19));
tree.add(parse_e_internal(ctx, get_prefix_binding_power_e(19)));
tree.isPrefix = true;
}
else if (rule_first[97].indexOf(current.id) != -1) {
// $e = :identifier <=> :lparen $_gen18 :rparen -> FunctionCall( name=$0, params=$2 )
ctx.rule = rules[97];
tree.astTransform = new AstTransformSubstitution(0);
tree.nudMorphemeCount = 1;
tree.add(expect(ctx, 39));
}
else if (rule_first[98].indexOf(current.id) != -1) {
// $e = :identifier <=> :lsquare $e :rsquare -> ArrayOrMapLookup( lhs=$0, rhs=$2 )
ctx.rule = rules[98];
tree.astTransform = new AstTransformSubstitution(0);
tree.nudMorphemeCount = 1;
tree.add(expect(ctx, 39));
}
else if (rule_first[99].indexOf(current.id) != -1) {
// $e = :identifier <=> :dot :identifier -> MemberAccess( lhs=$0, rhs=$2 )
ctx.rule = rules[99];
tree.astTransform = new AstTransformSubstitution(0);
tree.nudMorphemeCount = 1;
tree.add(expect(ctx, 39));
}
else if (rule_first[101].indexOf(current.id) != -1) {
// $e = :object :lbrace $_gen19 :rbrace -> ObjectLiteral( map=$2 )
ctx.rule = rules[101];
ast_parameters = {
'map': 2,
}
tree.astTransform = new AstTransformNodeCreator('ObjectLiteral', ast_parameters);
tree.nudMorphemeCount = 4;
tree.add(expect(ctx, 56));
tree.add(expect(ctx, 42));
tree.add(parse__gen19(ctx));
tree.add(expect(ctx, 51));
}
else if (rule_first[102].indexOf(current.id) != -1) {
// $e = :lsquare $_gen18 :rsquare -> ArrayLiteral( values=$1 )
ctx.rule = rules[102];
ast_parameters = {
'values': 1,
}
tree.astTransform = new AstTransformNodeCreator('ArrayLiteral', ast_parameters);
tree.nudMorphemeCount = 3;
tree.add(expect(ctx, 38));
tree.add(parse__gen18(ctx));
tree.add(expect(ctx, 28));
}
else if (rule_first[104].indexOf(current.id) != -1) {
// $e = :lbrace $_gen20 :rbrace -> MapLiteral( map=$1 )
ctx.rule = rules[104];
ast_parameters = {
'map': 1,
}
tree.astTransform = new AstTransformNodeCreator('MapLiteral', ast_parameters);
tree.nudMorphemeCount = 3;
tree.add(expect(ctx, 42));
tree.add(parse__gen20(ctx));
tree.add(expect(ctx, 51));
}
else if (rule_first[105].indexOf(current.id) != -1) {
// $e = :lparen $_gen18 :rparen -> TupleLiteral( values=$1 )
ctx.rule = rules[105];
ast_parameters = {
'values': 1,
}
tree.astTransform = new AstTransformNodeCreator('TupleLiteral', ast_parameters);
tree.nudMorphemeCount = 3;
tree.add(expect(ctx, 43));
tree.add(parse__gen18(ctx));
tree.add(expect(ctx, 5));
}
else if (rule_first[106].indexOf(current.id) != -1) {
// $e = :if $e :then $e :else $e -> TernaryIf( cond=$1, iftrue=$3, iffalse=$5 )
ctx.rule = rules[106];
ast_parameters = {
'cond': 1,
'iftrue': 3,
'iffalse': 5,
}
tree.astTransform = new AstTransformNodeCreator('TernaryIf', ast_parameters);
tree.nudMorphemeCount = 6;
tree.add(expect(ctx, 46));
tree.add(parse_e(ctx));
tree.add(expect(ctx, 3));
tree.add(parse_e(ctx));
tree.add(expect(ctx, 52));
tree.add(parse_e(ctx));
}
else if (rule_first[107].indexOf(current.id) != -1) {
// $e = :string
ctx.rule = rules[107];
tree.astTransform = new AstTransformSubstitution(0);
tree.nudMorphemeCount = 1;
tree.add(expect(ctx, 27));
}
else if (rule_first[108].indexOf(current.id) != -1) {
// $e = :identifier
ctx.rule = rules[108];
tree.astTransform = new AstTransformSubstitution(0);
tree.nudMorphemeCount = 1;
tree.add(expect(ctx, 39));
}
else if (rule_first[109].indexOf(current.id) != -1) {
// $e = :boolean
ctx.rule = rules[109];
tree.astTransform = new AstTransformSubstitution(0);
tree.nudMorphemeCount = 1;
tree.add(expect(ctx, 14));
}
else if (rule_first[110].indexOf(current.id) != -1) {
// $e = :integer
ctx.rule = rules[110];
tree.astTransform = new AstTransformSubstitution(0);
tree.nudMorphemeCount = 1;
tree.add(expect(ctx, 34));
}
else if (rule_first[111].indexOf(current.id) != -1) {
// $e = :float
ctx.rule = rules[111];
tree.astTransform = new AstTransformSubstitution(0);
tree.nudMorphemeCount = 1;
tree.add(expect(ctx, 17));
}
return tree;
}