Module: MilkTea::ConstEval
- Defined in:
- lib/milk_tea/core/compile_time/const_eval.rb
Defined Under Namespace
Classes: Evaluator
Class Method Summary collapse
- .boolean_value?(value) ⇒ Boolean
- .equality_result(left, right) ⇒ Object
- .evaluate(expression, resolve_identifier:, resolve_member_access:, resolve_type_ref: nil, resolve_call: nil) ⇒ Object
Class Method Details
.boolean_value?(value) ⇒ Boolean
27 28 29 |
# File 'lib/milk_tea/core/compile_time/const_eval.rb', line 27 def boolean_value?(value) value == true || value == false end |
.equality_result(left, right) ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/milk_tea/core/compile_time/const_eval.rb', line 18 def equality_result(left, right) return left == right if left.is_a?(Numeric) && right.is_a?(Numeric) return left == right if left.is_a?(String) && right.is_a?(String) return left == right if boolean_value?(left) && boolean_value?(right) return left == right if left.is_a?(Types::Base) && right.is_a?(Types::Base) nil end |
.evaluate(expression, resolve_identifier:, resolve_member_access:, resolve_type_ref: nil, resolve_call: nil) ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/milk_tea/core/compile_time/const_eval.rb', line 9 def evaluate(expression, resolve_identifier:, resolve_member_access:, resolve_type_ref: nil, resolve_call: nil) Evaluator.new( resolve_identifier:, resolve_member_access:, resolve_type_ref:, resolve_call:, ).evaluate(expression) end |