class Emfrp::DataDef

Public Instance Methods

codegen(ct) click to toggle source
# File lib/emfrp/compile/c/syntax_codegen.rb, line 310
def codegen(ct)
  t = ct.tref(self)
  ct.define_global_var(t, var_name(ct, self[:name][:desc]))
  ct.define_init_stmt("#{var_name(ct, self[:name][:desc])} = #{init_func_name(ct)}();")
  ct.define_func(t, init_func_name(ct), []) do |x|
    x << "return #{self[:exp].codegen(ct, x)};"
  end
end
init_func_name(ct) click to toggle source
# File lib/emfrp/compile/c/syntax_codegen.rb, line 323
def init_func_name(ct)
  "init_#{self[:name][:desc]}"
end
var_name(ct) click to toggle source
# File lib/emfrp/compile/c/syntax_codegen.rb, line 319
def var_name(ct)
  "data_#{self[:name][:desc]}"
end