Class: Wilson::Operand
Overview
Operand is any kind of operand used in a command or instruction, eg: registers, memory addresses, labels, immediates, etc.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#bits ⇒ Object
Returns the value of attribute bits.
-
#machine ⇒ Object
Returns the value of attribute machine.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(bits = nil, machine = nil) ⇒ Operand
constructor
TODO: fix all initialize methods from here down to have cleaner args.
- #instructionFromMessage(msg, *args, &b) ⇒ Object
- #method_missing(msg, *args, &b) ⇒ Object
- #operand? ⇒ Boolean
Constructor Details
#initialize(bits = nil, machine = nil) ⇒ Operand
TODO: fix all initialize methods from here down to have cleaner args
867 868 869 870 |
# File 'lib/wilson.rb', line 867 def initialize bits = nil, machine = nil @bits = bits @machine = machine end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(msg, *args, &b) ⇒ Object
872 873 874 |
# File 'lib/wilson.rb', line 872 def method_missing msg, *args, &b super unless self.instructionFromMessage(msg, *args, &b).assemble end |
Instance Attribute Details
#bits ⇒ Object
Returns the value of attribute bits.
858 859 860 |
# File 'lib/wilson.rb', line 858 def bits @bits end |
#machine ⇒ Object
Returns the value of attribute machine.
858 859 860 |
# File 'lib/wilson.rb', line 858 def machine @machine end |
Class Method Details
.on(machine) ⇒ Object
860 861 862 863 864 |
# File 'lib/wilson.rb', line 860 def self.on machine x = self.new x.machine = machine x end |
Instance Method Details
#instructionFromMessage(msg, *args, &b) ⇒ Object
876 877 878 |
# File 'lib/wilson.rb', line 876 def instructionFromMessage msg, *args, &b Instruction. machine, [msg, self, *args] + (b ? [b] : []) end |
#operand? ⇒ Boolean
880 881 882 |
# File 'lib/wilson.rb', line 880 def operand? true end |