Class: Lignite::Variables

Inherits:
Object
  • Object
show all
Defined in:
lib/lignite/variables.rb

Overview

Allocate local or global variables

Instance Method Summary collapse

Constructor Details

#initializeVariables

Returns a new instance of Variables.



4
5
6
7
# File 'lib/lignite/variables.rb', line 4

def initialize
  @offset = 0
  @vars = {}
end

Instance Method Details

#add(id, size) ⇒ Object



9
10
11
12
13
# File 'lib/lignite/variables.rb', line 9

def add(id, size)
  raise "Duplicate variable #{id}" if @vars.key?(id)
  @vars[id] = {offset: @offset, size: size}
  @offset += size
end

#bytesizeObject



15
16
17
# File 'lib/lignite/variables.rb', line 15

def bytesize
  @offset
end

#key?(sym) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/lignite/variables.rb', line 19

def key?(sym)
  @vars.key?(sym)
end

#offset(sym) ⇒ Object



23
24
25
# File 'lib/lignite/variables.rb', line 23

def offset(sym)
  @vars[sym][:offset]
end