Module: XRay::JS::Expr::Expr

Includes:
LeftHand, Operate, Primary
Included in:
Parser
Defined in:
lib/js/expr/expr.rb

Constant Summary

Constants included from Primary

Primary::RESERVED_WORDS, Primary::R_HEX, Primary::R_IDENTIFY, Primary::R_NUMBERIC, Primary::R_REGEXP, Primary::R_STRING, Primary::R_THIS_NULL_BOOLEAN

Instance Method Summary collapse

Methods included from Primary

#parse_expr_array, #parse_expr_identifier, #parse_expr_literal_hex, #parse_expr_literal_number, #parse_expr_literal_regexp, #parse_expr_literal_string, #parse_expr_literal_this_null_boolean, #parse_expr_object, #parse_expr_object_item, #parse_expr_parentheses, #parse_expr_primary

Methods included from LeftHand

#parse_expr_lefthand, #parse_expr_member, #parse_expr_new

Methods included from Operate

#expr_operate_not_in=, #expr_operate_not_in?, #parse_expr_add, #parse_expr_bit_and, #parse_expr_bit_or, #parse_expr_bit_xor, #parse_expr_equal, #parse_expr_logical_and, #parse_expr_logical_or, #parse_expr_mul, #parse_expr_postfix, #parse_expr_relation, #parse_expr_shift, #parse_expr_unary

Instance Method Details

#parse_expr_assignmentObject



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/js/expr/expr.rb', line 18

def parse_expr_assignment
  log 'parse expr assignment'

  expr = parse_expr_condition

  r = /=|\*=|\/=|%=|\+=|-=|<<=|>>=|>>>=|&=|\^=|\|=/
  if expr.left_hand? && check(r)
    op = scan r
    expr = create_element Expression, op.text, expr, parse_expr_assignment
  end
  expr
end

#parse_expr_conditionObject



31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/js/expr/expr.rb', line 31

def parse_expr_condition
  log 'parse expr condition'
  expr = parse_expr_logical_or
  if check /\?/
    skip /\?/
    left = parse_expr_assignment
    skip /:/
    right = parse_expr_assignment

    expr = create_element ConditionExpression, expr, left, right
  end
  expr
end

#parse_expressionObject



13
14
15
16
# File 'lib/js/expr/expr.rb', line 13

def parse_expression
  log 'parse expression'
  parse_expr_with_operate :parse_expr_assignment, /,/ 
end