Method: Crokus::PrinterC#main

Defined in:
lib/crokus/cfg_printer_c.rb

#main(cfg) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/crokus/cfg_printer_c.rb', line 43

def main cfg
  code=Code.new
  code << "int main(void){"
  code.indent=2
  inputs,outputs=[],[]
  cfg.infos["inputs"].each do |input|
    code << "int #{input} = #{rand 0..255};"
    inputs << input
  end
  cfg.infos["outputs"].each do |output|
    code << "int #{output};"
    outputs << "&#{output}"
  end
  params=[inputs,outputs].flatten.join(',')
  code << "#{cfg.name}(#{params});"
  cfg.infos["outputs"].each do |output|
    code << "printf(\"#{output} = %d\\n\",#{output});"
  end
  code << "return 0;"
  code.indent=0
  code << "}"
  code
end