class Emfrp::ValueConst

Public Instance Methods

codegen(ct, stmts) click to toggle source
# File lib/emfrp/compile/c/syntax_exp_codegen.rb, line 12
def codegen(ct, stmts)
  if ct.tdef(self[:typing]).enum?(ct)
    ct.tdef(self[:typing])[:tvalues].index{|t| t[:name] == self[:name]}.to_s
  else
    name = ct.constructor_name(self[:name][:desc], self[:typing])
    "#{name}(#{self[:args].map{|x| x.codegen(ct, stmts)}.join(", ")})"
  end
end