Class: Haxor::Compiler::Component::Logical

Inherits:
Base
  • Object
show all
Defined in:
lib/haxor/compiler/component/logical.rb

Instance Attribute Summary

Attributes inherited from Base

#compiler

Instance Method Summary collapse

Methods inherited from Base

#add, #bind_cmd, #offset?, #offset_flags, #parse_value, #strip_offset

Instance Method Details

#cmd_and(a, b) ⇒ Object



13
14
15
16
17
# File 'lib/haxor/compiler/component/logical.rb', line 13

def cmd_and(a, b)
  add Token::Cmd.new(Vm::Cpu::Unit::Logical::OP_AND | offset_flags(a, b))
  parse_value a
  parse_value b
end

#cmd_neg(a) ⇒ Object



19
20
21
22
# File 'lib/haxor/compiler/component/logical.rb', line 19

def cmd_neg(a)
  add Token::Cmd.new(Vm::Cpu::Unit::Logical::OP_NEG | offset_flags(a))
  parse_value a
end

#cmd_not(a) ⇒ Object



24
25
26
27
# File 'lib/haxor/compiler/component/logical.rb', line 24

def cmd_not(a)
  add Token::Cmd.new(Vm::Cpu::Unit::Logical::OP_NOT | offset_flags(a))
  parse_value a
end

#cmd_or(a, b) ⇒ Object



29
30
31
32
33
# File 'lib/haxor/compiler/component/logical.rb', line 29

def cmd_or(a, b)
  add Token::Cmd.new(Vm::Cpu::Unit::Logical::OP_OR | offset_flags(a, b))
  parse_value a
  parse_value b
end

#cmd_xor(a, b) ⇒ Object



35
36
37
38
39
# File 'lib/haxor/compiler/component/logical.rb', line 35

def cmd_xor(a, b)
  add Token::Cmd.new(Vm::Cpu::Unit::Logical::OP_XOR | offset_flags(a, b))
  parse_value a
  parse_value b
end

#register ⇒ Object



5
6
7
8
9
10
11
# File 'lib/haxor/compiler/component/logical.rb', line 5

def register
  bind_cmd 'and', :cmd_and
  bind_cmd 'neg', :cmd_neg
  bind_cmd 'not', :cmd_not
  bind_cmd 'or',  :cmd_or
  bind_cmd 'xor', :cmd_xor
end