Module: MilkTea::CompileTime

Defined in:
lib/milk_tea/core/compile_time.rb

Defined Under Namespace

Modules: Reflection Classes: BlockContext, Error, Evaluator, ReturnValue

Constant Summary collapse

Layout =
::MilkTea::Types::Layout

Class Method Summary collapse

Class Method Details

.boolean_value?(value) ⇒ Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/milk_tea/core/compile_time.rb', line 38

def self.boolean_value?(value)
  value == true || value == false
end

.equality_result(left, right) ⇒ Object



29
30
31
32
33
34
35
36
# File 'lib/milk_tea/core/compile_time.rb', line 29

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



20
21
22
23
24
25
26
27
# File 'lib/milk_tea/core/compile_time.rb', line 20

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