let genSub (p: proc) (dect: dec_table) (proct: proc_table) (ic: intermediateCode) = match p with
Proc(id,plist,dlist,c) -> (
let convertedPlist = (convertList ([(Par(id,Int))]@plist)) in
Hashtbl.add proct id (Building(Void, convertedPlist));
Hashtbl.replace proct id (genSubroutine id (convertedPlist) dlist dect proct c ic Void)
)
| Func(id,plist,Ret(r),dlist,c) -> (
let convertedPlist = (convertList ([(Par(id,r))]@plist)) in
Hashtbl.add proct id (Building(SRet(r), convertedPlist));
Hashtbl.replace proct id (genSubroutine id (convertedPlist) dlist dect proct c ic (SRet(r)))
)