class Antelope::Generator::CSource
Public Instance Methods
action_for(state)
click to toggle source
# File lib/antelope/generator/c_source.rb, line 5 def action_for(state) out = "" grammar.terminals.each do |terminal| action = state[terminal.name] if action.size == 2 && action[0] == :state out << "#{action[1] + 1}, " elsif action.size == 2 && [:reduce, :accept].include?(action[0]) if $DEBUG out << "#{prefix.upcase}STATES + #{action[1] + 1}, " else out << "#{table.size + action[1] + 1}, " end else out << "0, " end end out.chomp(", ") end
cify_block(block)
click to toggle source
# File lib/antelope/generator/c_source.rb, line 29 def cify_block(block) block.gsub(/\$([0-9]+)/, "#{prefix}vals[\\1]") .gsub(/\$\$/, "#{prefix}out") end
generate()
click to toggle source
# File lib/antelope/generator/c_source.rb, line 34 def generate template "c_source", "#{file}.c" end