in src/parser/WDL/hermes/wdl_parser.js [1664:1904]
function led_e(left, ctx) {
var tree = new ParseTree(new NonTerminal(79, 'e'))
var current = ctx.tokens.current()
var ast_parameters;
ctx.nonterminal = "e";
if (current.id == 53) { // :double_pipe
// $e = $e :double_pipe $e -> LogicalOr( lhs=$0, rhs=$2 )
ctx.rule = rules[80];
ast_parameters = {
'lhs': 0,
'rhs': 2,
}
tree.astTransform = new AstTransformNodeCreator('LogicalOr', ast_parameters);
tree.isExprNud = true;
tree.add(left);
tree.add(expect(ctx, 53)); // :double_pipe
var modifier = 0;
tree.isInfix = true;
tree.add(parse_e_internal(ctx, get_infix_binding_power_e(53) - modifier));
}
if (current.id == 8) { // :double_ampersand
// $e = $e :double_ampersand $e -> LogicalAnd( lhs=$0, rhs=$2 )
ctx.rule = rules[81];
ast_parameters = {
'lhs': 0,
'rhs': 2,
}
tree.astTransform = new AstTransformNodeCreator('LogicalAnd', ast_parameters);
tree.isExprNud = true;
tree.add(left);
tree.add(expect(ctx, 8)); // :double_ampersand
var modifier = 0;
tree.isInfix = true;
tree.add(parse_e_internal(ctx, get_infix_binding_power_e(8) - modifier));
}
if (current.id == 22) { // :double_equal
// $e = $e :double_equal $e -> Equals( lhs=$0, rhs=$2 )
ctx.rule = rules[82];
ast_parameters = {
'lhs': 0,
'rhs': 2,
}
tree.astTransform = new AstTransformNodeCreator('Equals', ast_parameters);
tree.isExprNud = true;
tree.add(left);
tree.add(expect(ctx, 22)); // :double_equal
var modifier = 0;
tree.isInfix = true;
tree.add(parse_e_internal(ctx, get_infix_binding_power_e(22) - modifier));
}
if (current.id == 13) { // :not_equal
// $e = $e :not_equal $e -> NotEquals( lhs=$0, rhs=$2 )
ctx.rule = rules[83];
ast_parameters = {
'lhs': 0,
'rhs': 2,
}
tree.astTransform = new AstTransformNodeCreator('NotEquals', ast_parameters);
tree.isExprNud = true;
tree.add(left);
tree.add(expect(ctx, 13)); // :not_equal
var modifier = 0;
tree.isInfix = true;
tree.add(parse_e_internal(ctx, get_infix_binding_power_e(13) - modifier));
}
if (current.id == 55) { // :lt
// $e = $e :lt $e -> LessThan( lhs=$0, rhs=$2 )
ctx.rule = rules[84];
ast_parameters = {
'lhs': 0,
'rhs': 2,
}
tree.astTransform = new AstTransformNodeCreator('LessThan', ast_parameters);
tree.isExprNud = true;
tree.add(left);
tree.add(expect(ctx, 55)); // :lt
var modifier = 0;
tree.isInfix = true;
tree.add(parse_e_internal(ctx, get_infix_binding_power_e(55) - modifier));
}
if (current.id == 47) { // :lteq
// $e = $e :lteq $e -> LessThanOrEqual( lhs=$0, rhs=$2 )
ctx.rule = rules[85];
ast_parameters = {
'lhs': 0,
'rhs': 2,
}
tree.astTransform = new AstTransformNodeCreator('LessThanOrEqual', ast_parameters);
tree.isExprNud = true;
tree.add(left);
tree.add(expect(ctx, 47)); // :lteq
var modifier = 0;
tree.isInfix = true;
tree.add(parse_e_internal(ctx, get_infix_binding_power_e(47) - modifier));
}
if (current.id == 30) { // :gt
// $e = $e :gt $e -> GreaterThan( lhs=$0, rhs=$2 )
ctx.rule = rules[86];
ast_parameters = {
'lhs': 0,
'rhs': 2,
}
tree.astTransform = new AstTransformNodeCreator('GreaterThan', ast_parameters);
tree.isExprNud = true;
tree.add(left);
tree.add(expect(ctx, 30)); // :gt
var modifier = 0;
tree.isInfix = true;
tree.add(parse_e_internal(ctx, get_infix_binding_power_e(30) - modifier));
}
if (current.id == 26) { // :gteq
// $e = $e :gteq $e -> GreaterThanOrEqual( lhs=$0, rhs=$2 )
ctx.rule = rules[87];
ast_parameters = {
'lhs': 0,
'rhs': 2,
}
tree.astTransform = new AstTransformNodeCreator('GreaterThanOrEqual', ast_parameters);
tree.isExprNud = true;
tree.add(left);
tree.add(expect(ctx, 26)); // :gteq
var modifier = 0;
tree.isInfix = true;
tree.add(parse_e_internal(ctx, get_infix_binding_power_e(26) - modifier));
}
if (current.id == 21) { // :plus
// $e = $e :plus $e -> Add( lhs=$0, rhs=$2 )
ctx.rule = rules[88];
ast_parameters = {
'lhs': 0,
'rhs': 2,
}
tree.astTransform = new AstTransformNodeCreator('Add', ast_parameters);
tree.isExprNud = true;
tree.add(left);
tree.add(expect(ctx, 21)); // :plus
var modifier = 0;
tree.isInfix = true;
tree.add(parse_e_internal(ctx, get_infix_binding_power_e(21) - modifier));
}
if (current.id == 19) { // :dash
// $e = $e :dash $e -> Subtract( lhs=$0, rhs=$2 )
ctx.rule = rules[89];
ast_parameters = {
'lhs': 0,
'rhs': 2,
}
tree.astTransform = new AstTransformNodeCreator('Subtract', ast_parameters);
tree.isExprNud = true;
tree.add(left);
tree.add(expect(ctx, 19)); // :dash
var modifier = 0;
tree.isInfix = true;
tree.add(parse_e_internal(ctx, get_infix_binding_power_e(19) - modifier));
}
if (current.id == 10) { // :asterisk
// $e = $e :asterisk $e -> Multiply( lhs=$0, rhs=$2 )
ctx.rule = rules[90];
ast_parameters = {
'lhs': 0,
'rhs': 2,
}
tree.astTransform = new AstTransformNodeCreator('Multiply', ast_parameters);
tree.isExprNud = true;
tree.add(left);
tree.add(expect(ctx, 10)); // :asterisk
var modifier = 0;
tree.isInfix = true;
tree.add(parse_e_internal(ctx, get_infix_binding_power_e(10) - modifier));
}
if (current.id == 32) { // :slash
// $e = $e :slash $e -> Divide( lhs=$0, rhs=$2 )
ctx.rule = rules[91];
ast_parameters = {
'lhs': 0,
'rhs': 2,
}
tree.astTransform = new AstTransformNodeCreator('Divide', ast_parameters);
tree.isExprNud = true;
tree.add(left);
tree.add(expect(ctx, 32)); // :slash
var modifier = 0;
tree.isInfix = true;
tree.add(parse_e_internal(ctx, get_infix_binding_power_e(32) - modifier));
}
if (current.id == 57) { // :percent
// $e = $e :percent $e -> Remainder( lhs=$0, rhs=$2 )
ctx.rule = rules[92];
ast_parameters = {
'lhs': 0,
'rhs': 2,
}
tree.astTransform = new AstTransformNodeCreator('Remainder', ast_parameters);
tree.isExprNud = true;
tree.add(left);
tree.add(expect(ctx, 57)); // :percent
var modifier = 0;
tree.isInfix = true;
tree.add(parse_e_internal(ctx, get_infix_binding_power_e(57) - modifier));
}
if (current.id == 43) { // :lparen
// $e = :identifier <=> :lparen $_gen18 :rparen -> FunctionCall( name=$0, params=$2 )
ctx.rule = rules[97];
ast_parameters = {
'name': 0,
'params': 2,
}
tree.astTransform = new AstTransformNodeCreator('FunctionCall', ast_parameters);
tree.add(left);
tree.add(expect(ctx, 43)); // :lparen
tree.add(parse__gen18(ctx));
tree.add(expect(ctx, 5)); // :rparen
}
if (current.id == 38) { // :lsquare
// $e = :identifier <=> :lsquare $e :rsquare -> ArrayOrMapLookup( lhs=$0, rhs=$2 )
ctx.rule = rules[98];
ast_parameters = {
'lhs': 0,
'rhs': 2,
}
tree.astTransform = new AstTransformNodeCreator('ArrayOrMapLookup', ast_parameters);
tree.add(left);
tree.add(expect(ctx, 38)); // :lsquare
var modifier = 0;
tree.add(parse_e_internal(ctx, get_infix_binding_power_e(38) - modifier));
tree.add(expect(ctx, 28)); // :rsquare
}
if (current.id == 35) { // :dot
// $e = :identifier <=> :dot :identifier -> MemberAccess( lhs=$0, rhs=$2 )
ctx.rule = rules[99];
ast_parameters = {
'lhs': 0,
'rhs': 2,
}
tree.astTransform = new AstTransformNodeCreator('MemberAccess', ast_parameters);
tree.add(left);
tree.add(expect(ctx, 35)); // :dot
tree.add(expect(ctx, 39)); // :identifier
}
return tree;
}