class Emfrp::FuncDef

Public Instance Methods

codegen(ct) click to toggle source
# File lib/emfrp/compile/c/syntax_codegen.rb, line 333
def codegen(ct)
  params = self[:params].map{|x| [ct.tref(x), x[:name][:desc]]}
  ct.define_func(ct.tref(self), func_name(ct), params) do |x|
    x << "return #{self[:exp].codegen(ct, x)};"
  end
end
func_name(ct) click to toggle source
# File lib/emfrp/compile/c/syntax_codegen.rb, line 340
def func_name(ct)
  ct.escape_name(self[:name][:desc]) + "_" + ct.serial(self[:name][:desc], self).to_s
end
var_name(ct, name) click to toggle source
# File lib/emfrp/compile/c/syntax_codegen.rb, line 344
def var_name(ct, name)
  ct.escape_name(name)
end