Module: XRay::JS::Expr::Expr
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_assignment ⇒ Object
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_condition ⇒ Object
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_expression ⇒ Object
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 |