rubyx/lib/mom/instruction/truth_check.rb

28 lines
566 B
Ruby
Raw Normal View History

2017-08-30 17:21:13 +03:00
module Mom
2017-09-06 12:08:44 +03:00
# A base class for conditions in MOM
# Just a marker, no real functionality for now
class Check < Instruction
end
2017-08-30 17:21:13 +03:00
# The funny thing about the ruby truth is that is is anything but false or nil
#
# To implement the normal ruby logic, we check for false or nil and jump
# to the false branch. true_block follows implicitly
#
class TruthCheck < Check
attr_reader :condition
2017-08-30 17:21:13 +03:00
def initialize(condition)
2017-09-06 12:08:44 +03:00
@condition = condition
2017-08-30 17:21:13 +03:00
end
def to_risc(compiler)
2018-03-14 17:37:27 +05:30
Risc::Label.new(self,"TruthCheck")
end
2017-08-30 17:21:13 +03:00
end
end