From 85dd975746f2460f74cc264ab5ec2d82aae1f13f Mon Sep 17 00:00:00 2001 From: Louis-Vincent Boudreault Date: Tue, 27 Aug 2019 15:00:28 -0400 Subject: [PATCH] functional: Added universal types to callref Signed-off-by: Louis-Vincent Boudreault --- lib/functional/functional_gen.nit | 63 ++++++--- lib/functional/functional_types.nit | 240 +++++++++++++++++++++++++++++------ 2 files changed, 248 insertions(+), 55 deletions(-) diff --git a/lib/functional/functional_gen.nit b/lib/functional/functional_gen.nit index 2bfa266..0711373 100644 --- a/lib/functional/functional_gen.nit +++ b/lib/functional/functional_gen.nit @@ -29,35 +29,54 @@ do end class RoutineTemplate + var classkind: String var classname: String var nb_generics: Int var supers: Array[String] var has_return: Bool + var is_redef = false var annotation = "is abstract" - redef fun to_s + fun callparams: Array[String] do var generics = gen_generics(nb_generics) var params = new Array[String] for g in generics do - params.push(g.to_lower + ": " + g) + if is_redef then + params.push(g.to_lower) + else + params.push(g.to_lower + ": " + g) + end end + return params + end + + fun classparams: Array[String] + do + var res = gen_generics(nb_generics) + if has_return then res.add("RESULT") + return res + end + + redef fun to_s + do var signature = "" - if params.length > 0 then signature = "({params.join(",")})" - if has_return then - signature += ": RESULT" - generics.push("RESULT") - end - var classparam = "" - if generics.length > 0 then - classparam = "[{generics.join(",")}]" - end + var callparams = self.callparams + var classparams = self.classparams + + if callparams.length > 0 then signature = "({callparams.join(",")})" + if has_return then signature += ": RESULT" + var classdecl = "{classkind} {classname}" + if classparams.length > 0 then classdecl += "[{classparams.join(",")}]" var superdecls = new Array[String] for s in supers do superdecls.add("\tsuper {s}") + var classdef = new Array[String] - classdef.add("class {classname}{classparam}") + var redefkw = "" + if is_redef then redefkw = "redef " + classdef.add("{classdecl}") classdef.add("{superdecls.join("\n")}") - classdef.add("\tfun call{signature} {annotation}") + classdef.add("\t{redefkw}fun call{signature} {annotation}") classdef.add("end") return classdef.join("\n") end @@ -97,12 +116,26 @@ interface Proc end """) var templates = new Array[String] + var templates2 = new Array[String] for i in [0..n[ do - var t1 = new RoutineTemplate("Fun{i}", i, ["Fun"], true) - var t2 = new RoutineTemplate("Proc{i}", i, ["Proc"], false) + var t1 = new RoutineTemplate("interface", "Fun{i}", i, ["Fun"], true) + var t2 = new RoutineTemplate("interface", "Proc{i}", i, ["Proc"], false) templates.push(t1.to_s) templates.push(t2.to_s) + + # We want routine ref to be at the end of the file + var t3 = new RoutineTemplate("universal", "FunRef{i}", i, ["Fun{i}{t1.classparams}"], true) + var procsuper = "Proc{i}" + if i > 0 then procsuper = "Proc{i}{t2.classparams}" + var t4 = new RoutineTemplate("universal", "ProcRef{i}", i, [procsuper], false) + t3.annotation = "is intern" + t3.is_redef = true + t4.annotation = "is intern" + t4.is_redef = true + templates2.push(t3.to_s) + templates2.push(t4.to_s) end + templates.add_all(templates2) writer.write(templates.join("\n")) end diff --git a/lib/functional/functional_types.nit b/lib/functional/functional_types.nit index 4724064..c428e53 100644 --- a/lib/functional/functional_types.nit +++ b/lib/functional/functional_types.nit @@ -26,163 +26,323 @@ end interface Proc super Routine end -class Fun0[RESULT] +interface Fun0[RESULT] super Fun fun call: RESULT is abstract end -class Proc0 +interface Proc0 super Proc fun call is abstract end -class Fun1[A0,RESULT] +interface Fun1[A0,RESULT] super Fun fun call(a0: A0): RESULT is abstract end -class Proc1[A0] +interface Proc1[A0] super Proc fun call(a0: A0) is abstract end -class Fun2[A0,A1,RESULT] +interface Fun2[A0,A1,RESULT] super Fun fun call(a0: A0,a1: A1): RESULT is abstract end -class Proc2[A0,A1] +interface Proc2[A0,A1] super Proc fun call(a0: A0,a1: A1) is abstract end -class Fun3[A0,A1,A2,RESULT] +interface Fun3[A0,A1,A2,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2): RESULT is abstract end -class Proc3[A0,A1,A2] +interface Proc3[A0,A1,A2] super Proc fun call(a0: A0,a1: A1,a2: A2) is abstract end -class Fun4[A0,A1,A2,A3,RESULT] +interface Fun4[A0,A1,A2,A3,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2,a3: A3): RESULT is abstract end -class Proc4[A0,A1,A2,A3] +interface Proc4[A0,A1,A2,A3] super Proc fun call(a0: A0,a1: A1,a2: A2,a3: A3) is abstract end -class Fun5[A0,A1,A2,A3,A4,RESULT] +interface Fun5[A0,A1,A2,A3,A4,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4): RESULT is abstract end -class Proc5[A0,A1,A2,A3,A4] +interface Proc5[A0,A1,A2,A3,A4] super Proc fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4) is abstract end -class Fun6[A0,A1,A2,A3,A4,A5,RESULT] +interface Fun6[A0,A1,A2,A3,A4,A5,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5): RESULT is abstract end -class Proc6[A0,A1,A2,A3,A4,A5] +interface Proc6[A0,A1,A2,A3,A4,A5] super Proc fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5) is abstract end -class Fun7[A0,A1,A2,A3,A4,A5,A6,RESULT] +interface Fun7[A0,A1,A2,A3,A4,A5,A6,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6): RESULT is abstract end -class Proc7[A0,A1,A2,A3,A4,A5,A6] +interface Proc7[A0,A1,A2,A3,A4,A5,A6] super Proc fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6) is abstract end -class Fun8[A0,A1,A2,A3,A4,A5,A6,A7,RESULT] +interface Fun8[A0,A1,A2,A3,A4,A5,A6,A7,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7): RESULT is abstract end -class Proc8[A0,A1,A2,A3,A4,A5,A6,A7] +interface Proc8[A0,A1,A2,A3,A4,A5,A6,A7] super Proc fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7) is abstract end -class Fun9[A0,A1,A2,A3,A4,A5,A6,A7,A8,RESULT] +interface Fun9[A0,A1,A2,A3,A4,A5,A6,A7,A8,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8): RESULT is abstract end -class Proc9[A0,A1,A2,A3,A4,A5,A6,A7,A8] +interface Proc9[A0,A1,A2,A3,A4,A5,A6,A7,A8] super Proc fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8) is abstract end -class Fun10[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,RESULT] +interface Fun10[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9): RESULT is abstract end -class Proc10[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9] +interface Proc10[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9] super Proc fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9) is abstract end -class Fun11[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,RESULT] +interface Fun11[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10): RESULT is abstract end -class Proc11[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10] +interface Proc11[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10] super Proc fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10) is abstract end -class Fun12[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,RESULT] +interface Fun12[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11): RESULT is abstract end -class Proc12[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11] +interface Proc12[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11] super Proc fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11) is abstract end -class Fun13[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,RESULT] +interface Fun13[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12): RESULT is abstract end -class Proc13[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12] +interface Proc13[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12] super Proc fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12) is abstract end -class Fun14[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,RESULT] +interface Fun14[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13): RESULT is abstract end -class Proc14[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13] +interface Proc14[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13] super Proc fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13) is abstract end -class Fun15[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,RESULT] +interface Fun15[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14): RESULT is abstract end -class Proc15[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14] +interface Proc15[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14] super Proc fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14) is abstract end -class Fun16[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,RESULT] +interface Fun16[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15): RESULT is abstract end -class Proc16[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15] +interface Proc16[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15] super Proc fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15) is abstract end -class Fun17[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,RESULT] +interface Fun17[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16): RESULT is abstract end -class Proc17[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16] +interface Proc17[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16] super Proc fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16) is abstract end -class Fun18[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,RESULT] +interface Fun18[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16,a17: A17): RESULT is abstract end -class Proc18[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17] +interface Proc18[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17] super Proc fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16,a17: A17) is abstract end -class Fun19[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,RESULT] +interface Fun19[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,RESULT] super Fun fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16,a17: A17,a18: A18): RESULT is abstract end -class Proc19[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18] +interface Proc19[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18] super Proc fun call(a0: A0,a1: A1,a2: A2,a3: A3,a4: A4,a5: A5,a6: A6,a7: A7,a8: A8,a9: A9,a10: A10,a11: A11,a12: A12,a13: A13,a14: A14,a15: A15,a16: A16,a17: A17,a18: A18) is abstract +end +universal FunRef0[RESULT] + super Fun0[RESULT] + redef fun call: RESULT is intern +end +universal ProcRef0 + super Proc0 + redef fun call is intern +end +universal FunRef1[A0,RESULT] + super Fun1[A0,RESULT] + redef fun call(a0): RESULT is intern +end +universal ProcRef1[A0] + super Proc1[A0] + redef fun call(a0) is intern +end +universal FunRef2[A0,A1,RESULT] + super Fun2[A0,A1,RESULT] + redef fun call(a0,a1): RESULT is intern +end +universal ProcRef2[A0,A1] + super Proc2[A0,A1] + redef fun call(a0,a1) is intern +end +universal FunRef3[A0,A1,A2,RESULT] + super Fun3[A0,A1,A2,RESULT] + redef fun call(a0,a1,a2): RESULT is intern +end +universal ProcRef3[A0,A1,A2] + super Proc3[A0,A1,A2] + redef fun call(a0,a1,a2) is intern +end +universal FunRef4[A0,A1,A2,A3,RESULT] + super Fun4[A0,A1,A2,A3,RESULT] + redef fun call(a0,a1,a2,a3): RESULT is intern +end +universal ProcRef4[A0,A1,A2,A3] + super Proc4[A0,A1,A2,A3] + redef fun call(a0,a1,a2,a3) is intern +end +universal FunRef5[A0,A1,A2,A3,A4,RESULT] + super Fun5[A0,A1,A2,A3,A4,RESULT] + redef fun call(a0,a1,a2,a3,a4): RESULT is intern +end +universal ProcRef5[A0,A1,A2,A3,A4] + super Proc5[A0,A1,A2,A3,A4] + redef fun call(a0,a1,a2,a3,a4) is intern +end +universal FunRef6[A0,A1,A2,A3,A4,A5,RESULT] + super Fun6[A0,A1,A2,A3,A4,A5,RESULT] + redef fun call(a0,a1,a2,a3,a4,a5): RESULT is intern +end +universal ProcRef6[A0,A1,A2,A3,A4,A5] + super Proc6[A0,A1,A2,A3,A4,A5] + redef fun call(a0,a1,a2,a3,a4,a5) is intern +end +universal FunRef7[A0,A1,A2,A3,A4,A5,A6,RESULT] + super Fun7[A0,A1,A2,A3,A4,A5,A6,RESULT] + redef fun call(a0,a1,a2,a3,a4,a5,a6): RESULT is intern +end +universal ProcRef7[A0,A1,A2,A3,A4,A5,A6] + super Proc7[A0,A1,A2,A3,A4,A5,A6] + redef fun call(a0,a1,a2,a3,a4,a5,a6) is intern +end +universal FunRef8[A0,A1,A2,A3,A4,A5,A6,A7,RESULT] + super Fun8[A0,A1,A2,A3,A4,A5,A6,A7,RESULT] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7): RESULT is intern +end +universal ProcRef8[A0,A1,A2,A3,A4,A5,A6,A7] + super Proc8[A0,A1,A2,A3,A4,A5,A6,A7] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7) is intern +end +universal FunRef9[A0,A1,A2,A3,A4,A5,A6,A7,A8,RESULT] + super Fun9[A0,A1,A2,A3,A4,A5,A6,A7,A8,RESULT] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8): RESULT is intern +end +universal ProcRef9[A0,A1,A2,A3,A4,A5,A6,A7,A8] + super Proc9[A0,A1,A2,A3,A4,A5,A6,A7,A8] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8) is intern +end +universal FunRef10[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,RESULT] + super Fun10[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,RESULT] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9): RESULT is intern +end +universal ProcRef10[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9] + super Proc10[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9) is intern +end +universal FunRef11[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,RESULT] + super Fun11[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,RESULT] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10): RESULT is intern +end +universal ProcRef11[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10] + super Proc11[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) is intern +end +universal FunRef12[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,RESULT] + super Fun12[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,RESULT] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11): RESULT is intern +end +universal ProcRef12[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11] + super Proc12[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) is intern +end +universal FunRef13[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,RESULT] + super Fun13[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,RESULT] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12): RESULT is intern +end +universal ProcRef13[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12] + super Proc13[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) is intern +end +universal FunRef14[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,RESULT] + super Fun14[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,RESULT] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13): RESULT is intern +end +universal ProcRef14[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13] + super Proc14[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) is intern +end +universal FunRef15[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,RESULT] + super Fun15[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,RESULT] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14): RESULT is intern +end +universal ProcRef15[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14] + super Proc15[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) is intern +end +universal FunRef16[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,RESULT] + super Fun16[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,RESULT] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15): RESULT is intern +end +universal ProcRef16[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15] + super Proc16[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) is intern +end +universal FunRef17[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,RESULT] + super Fun17[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,RESULT] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16): RESULT is intern +end +universal ProcRef17[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16] + super Proc17[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) is intern +end +universal FunRef18[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,RESULT] + super Fun18[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,RESULT] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17): RESULT is intern +end +universal ProcRef18[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17] + super Proc18[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17) is intern +end +universal FunRef19[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,RESULT] + super Fun19[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,RESULT] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18): RESULT is intern +end +universal ProcRef19[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18] + super Proc19[A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18] + redef fun call(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18) is intern end \ No newline at end of file -- 1.7.9.5