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
26 27 28 |
# File 'lib/milk_tea/core/compile_time/const_eval.rb', line 26 def self.boolean_value?(value) value == true || value == false end |
.equality_result(left, right) ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'lib/milk_tea/core/compile_time/const_eval.rb', line 17 def self.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
8 9 10 11 12 13 14 15 |
# File 'lib/milk_tea/core/compile_time/const_eval.rb', line 8 def self.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 |