Class: Packcr::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/packcr/generator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rule, ascii, location, lang = :c) ⇒ Generator

Returns a new instance of Generator.



7
8
9
10
11
12
13
# File 'lib/packcr/generator.rb', line 7

def initialize(rule, ascii, location, lang = :c)
  @rule = rule
  @label = 0
  @ascii = !!ascii
  @location = !!location
  @lang = lang
end

Instance Attribute Details

#asciiObject (readonly)

Returns the value of attribute ascii.



5
6
7
# File 'lib/packcr/generator.rb', line 5

def ascii
  @ascii
end

#langObject (readonly)

Returns the value of attribute lang.



5
6
7
# File 'lib/packcr/generator.rb', line 5

def lang
  @lang
end

#locationObject (readonly)

Returns the value of attribute location.



5
6
7
# File 'lib/packcr/generator.rb', line 5

def location
  @location
end

#ruleObject (readonly)

Returns the value of attribute rule.



5
6
7
# File 'lib/packcr/generator.rb', line 5

def rule
  @rule
end

Instance Method Details

#generate_code(node, onfail, indent, bare) ⇒ Object



19
20
21
# File 'lib/packcr/generator.rb', line 19

def generate_code(node, onfail, indent, bare)
  node.generate_code(self, onfail, indent, bare)
end

#generate_code_str(node, onfail, indent, bare) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/packcr/generator.rb', line 23

def generate_code_str(node, onfail, indent, bare)
  @stream, stream = StringIO.new, @stream
  begin
    return generate_code(node, onfail, indent, bare), @stream.string
  ensure
    @stream = stream
  end
end

#next_labelObject



15
16
17
# File 'lib/packcr/generator.rb', line 15

def next_label
  @label += 1
end

#write(str) ⇒ Object



32
33
34
# File 'lib/packcr/generator.rb', line 32

def write(str)
  @stream.write(str)
end