Class: Indis::ARM::EncodingLoader
- Inherits:
-
Object
- Object
- Indis::ARM::EncodingLoader
- Defined in:
- lib/indis-arm/instruction_loader.rb
Instance Method Summary collapse
-
#encoding(enc, &block) ⇒ Object
Loads a specific instruction encoding.
-
#initialize(name, arr) ⇒ EncodingLoader
constructor
A new instance of EncodingLoader.
Constructor Details
#initialize(name, arr) ⇒ EncodingLoader
Returns a new instance of EncodingLoader.
56 57 58 59 |
# File 'lib/indis-arm/instruction_loader.rb', line 56 def initialize(name, arr) @name = name @classes = arr end |
Instance Method Details
#encoding(enc, &block) ⇒ Object
Loads a specific instruction encoding. The block is evaluated in a context of newly-created MnemonicLoader.
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/indis-arm/instruction_loader.rb', line 64 def encoding(enc, &block) unless block_given? #puts "Encoding #{enc} of #{@name} is undefined yet" return end name = @name klass = Class.new(Indis::ARM::Instruction) { @name = name; @encoding = enc } ARM.const_set("#{name}Instruction_#{enc}", klass) ml = MnemonicLoader.new(klass) ml.instance_eval(&block) @classes << klass end |