Module: Trxl::RangeLiteral1
- Defined in:
- lib/trxl/trxl_grammar.rb
Instance Method Summary collapse
- #eval(env = Environment.new) ⇒ Object
- #range_type(env = Environment.new) ⇒ Object
- #to_s(env = Environment.new) ⇒ Object
Instance Method Details
#eval(env = Environment.new) ⇒ Object
2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 |
# File 'lib/trxl/trxl_grammar.rb', line 2749 def eval(env = Environment.new) lower_bound = lower.eval(env) upper_bound = upper.eval(env) if lower_bound.class == upper_bound.class && !lower_bound.is_a?(Array) range_op = elements[2].text_value omit_upper = (range_op == '...') ? true : false Range.new(lower.eval(env), upper.eval(env), omit_upper).to_a else raise Trxl::InvalidOperationException, "Range boundary is not of type String or Integer" end end |
#range_type(env = Environment.new) ⇒ Object
2761 2762 2763 2764 2765 2766 2767 |
# File 'lib/trxl/trxl_grammar.rb', line 2761 def range_type(env = Environment.new) case elements[0].eval(env) when Fixnum then :numeric when String then :string else :unknown end end |
#to_s(env = Environment.new) ⇒ Object
2769 2770 2771 |
# File 'lib/trxl/trxl_grammar.rb', line 2769 def to_s(env = Environment.new) text_value end |