let rec c_generator (il: instruction list) (ic: intermediateCode) (out: out_channel) (n: int) (pl: element list) (proct: proc_table) = match il with
[] -> ()
| i::is -> (
if(ic#hasLabel n) then (
let l = (ic#getInstrLabel n) in
output_string out ((c_element l) ^ ":\n");
);
let plnew = (c_instruction i out pl proct) in
(c_generator is ic out (n+1) plnew proct)
)