diff --git a/compile/goexp.cl b/compile/goexp.cl index f62ba5e..8822eef 100644 --- a/compile/goexp.cl +++ b/compile/goexp.cl @@ -170,13 +170,15 @@ g_expression(self:symbol,s:class) : void cast_post(s2,s))) ] // global_variables are CLAIRE objects +// v4.0.4 : handle optimized variables (nativeVarG) [g_expression(self:global_variable,s:class) : void -> if (s = EID) to_eid(PRODUCER,self,object) else if (self.range = {} & (self.value % integer | self.value % float | self.value = nil)) g_expression(self.value,s) // global constant inlining - else (object_prefix(any,s), + else let s2 := (if nativeVar?(self) getRange(self) else any) in + (cast_prefix(s2,s), globalVar(PRODUCER,self), - object_post(any,s)) ] + cast_post(s2,s)) ] // builds a set g_expression(self:Set,s:class) : void @@ -224,11 +226,11 @@ g_expression(self:list,s:class) : void // new in CLAIRE 4 !! compilation of lambda is OK but requires the reader (similar to macros) g_expression(self:lambda,s:class) : void -> (Optimize/legal?(Reader,self), - printf("~ICore.F_read_lambda(MakeString(\"lambda[(~I),~S]\"))~I", - cast_prefix(lambda,s), + printf("~ICore.F_read_lambda_string(MakeString(\"lambda[(~I),~S]\"))~I", + eid_prefix(s), Language/ppvariable(self.vars), self.body, - cast_post(lambda,s))) + eid_post(s))) //********************************************************************** //* Part 2: expression for messages * diff --git a/compile/gogen.cl b/compile/gogen.cl index 7aec4a9..5aeec7e 100644 --- a/compile/gogen.cl +++ b/compile/gogen.cl @@ -75,6 +75,7 @@ GO_PRODUCER :: go_producer( // a list of interface Generate/interfaces = list(integer, "int", char, "rune", string, "string", float, "float64 "), kernel_methods = list(// empty @ set, class! @ type, copy @ set, length @ bag, + nth @ list, nth @ tuple, // needed for compiling with low optimization @ @ type,"At", array! @ list, // size @ set, empty @ bag, list! @ set, set! @ list, tuple! @ list, // defined in Core (2nd order type) list! @ tuple, /+ @ list,"Append", << @ list, "Skip") @@ -198,7 +199,7 @@ c_string(c:go_producer, self:symbol) : string // range = {} for global constant [globalVar(c:go_producer,x:global_variable) : void -> thing_ident(x), - princ(".Value") ] + if not(nativeVar?(x)) princ(".Value") ] // do not forget optimized (native) global variables // the go expression that represents a global variable, as a string (reused for Gassign) diff --git a/compile/gomain.cl b/compile/gomain.cl index f00e62f..62c48b8 100644 --- a/compile/gomain.cl +++ b/compile/gomain.cl @@ -267,13 +267,13 @@ // create a directory for the module (if it does not exist) [compile_dir(m:module): void -> let s := "mkdir -p src" / capitalize(string!(m.name)) in - (//[0] ask shell : ~S // s, + (//[5] ask shell : ~S // s, shell(s))] // create the go [compile_exe(%out:string): void -> let s := "go build src" / %out /+ ".go" in - (//[0] ask shell : ~S // s, + (//[5] ask shell : ~S // s, shell(s))] diff --git a/compile/gostat.cl b/compile/gostat.cl index aa5fc76..0ba3cec 100644 --- a/compile/gostat.cl +++ b/compile/gostat.cl @@ -283,6 +283,8 @@ unfold_eid(ldef:list,self:any,s:class, v:any,err:boolean,loop:any) : void // AXIOM if err is true, we require that e = any [g_statement(self:Let,e:class,v:string,err:boolean,loop:any) : void -> if let_eid?(self) g_eid_stat(self,e,v,err,loop) + else if (self.arg = self.var & e = void) // stupid case where + statement(self.value,e,v,loop) // self.var is not needed ! else let ns := c_string(PRODUCER,self.var.mClaire/pname) in (if (ns[1] = 'C' & ns[2] = '%') self.var.mClaire/pname := gensym(), // used in Iterate (C% variables are expanded): ocontrol.cl let v2 := c_string(PRODUCER,self.var), x := self.value, @@ -295,7 +297,7 @@ unfold_eid(ldef:list,self:any,s:class, v:any,err:boolean,loop:any) : void if (Language/occurexact(self.arg, self.var) < 1) // avoid unused variable error (1 safe, 0 optimized) (// THIS SHOULD BE A PROPER WARNING ============== //[5] >>>>>>>> variable ~S declared but unused // v2, - printf("_ = ~A~I", v2,breakline())), + printf("_ = ~A~I", v2,breakline())), if try? g_try(x,v2,ev,v,false) // if the value may be an error => start if chain else if not(f) statement(x, ev, v2,loop), statement(self.arg, e, v, loop), // calling statement is crictical for reintrant pattern :) @@ -452,20 +454,22 @@ unfold_eid(ldef:list,self:any,s:class, v:any,err:boolean,loop:any) : void // This is the global variable assignment - global variables exist in go so this is pretty simple // note that the tricky part is the store management +// v4.0.4 : if nativeVar, we need to produce the go object, not an any (any is now replaced by %srange) [g_statement(self:Gassign,s:class,v:string,err:boolean,loop:any) : void - -> let %var := self.var, x := self.arg in + -> let %var := self.var, x := self.arg, + %range := (if nativeVar?(%var) getRange(%var) else any) in (if (g_func(x) & s = void & not(%var.Kernel/store?)) // simple case - printf("~I = ~I~I", globalVar(PRODUCER,%var), g_expression(x,any), breakline()) + printf("~I = ~I~I", globalVar(PRODUCER,%var), g_expression(x,%range), breakline()) else let v2 := genvar("v_gassign"), try? := g_throw(x) in - (if (not(try?) & (s = any)) v2 := v // save intermediate the variable - else var_declaration(v2,any,1), - if try? g_try(x,v2,any,v,false) - else statement(x,any,v2,loop), + (if (not(try?) & (s = any & %range = any)) v2 := v // save intermediate the variable + else var_declaration(v2,%range,1), + if try? g_try(x,v2,%range,v,false) + else statement(x,%range,v2,loop), if self.var.Kernel/store? printf("~I.StoreObj(3,~I,CTRUE)~I", thing_ident(%var), c_princ(v2),breakline()) else printf("~I = ~I~I", globalVar(PRODUCER,%var), c_princ(v2),breakline()), if (s != void & v != v2) - printf("~I = ~I~I",c_princ(v),use_variable(v2,s,any),breakline()), + printf("~I = ~I~I",c_princ(v),use_variable(v2,s,%range),breakline()), if try? close_block()))] diff --git a/compile/gosystem.cl b/compile/gosystem.cl index 1a84353..7419439 100644 --- a/compile/gosystem.cl +++ b/compile/gosystem.cl @@ -656,11 +656,17 @@ parents(self:list) : list // generic case (g_func is true) // simpler case that we apply for Do, Ifs and functional expressions +// however is c_type(exp) is void we need to return CNULL [function_body(self:any,s:class) : void -> let %ret := (if (s != void) "return " else "") in - (if (s = boolean) - printf("if ~I {return CTRUE~I} else {return CFALSE}",bool_exp(self,true),breakline()) - else printf("~A ~I~I", %ret, g_expression(self,s),breakline())) ] +// (if (s = boolean) // this is an old optimization that is USELESS in CLAIRE4 +// printf("if ~I {return CTRUE~I} else {return CFALSE}",bool_exp(self,true),breakline()) +// else printf("~A ~I~I", %ret, g_expression(self,s),breakline())) ] + (if (c_type(self) = void & s != void) + printf("~I~Ireturn ~I~I", + g_expression(self,void), breakline(), + g_expression(unknown,s), breakline()) + else printf("~A ~I~I", %ret, g_expression(self,s),breakline())) ] // generate nice code for If function (inspired from g_statement@If) [function_body(self:If, s:class) : void diff --git a/compile/ocontrol.cl b/compile/ocontrol.cl index 9b39021..55eb5ab 100644 --- a/compile/ocontrol.cl +++ b/compile/ocontrol.cl @@ -159,7 +159,7 @@ c_code(self:Call_function2) : any (if (length(a) = 1 & c_type(a[1]) <= integer) c_code(Call(write,list(verbose,system,a[1]))) else if (length(a) > 1 & a[2] % string & - (compiler.debug? | (try eval(a[1]) <= max(2,system.verbose) catch any true))) + (compiler.debug? | (try eval(a[1]) <= max(3,system.verbose) catch any true))) let %c := Call(Core/tformat, list(a[2], a[1], List(args = (copy(a) << 2)))) in c_code((if not(a[1] % integer) @@ -215,7 +215,7 @@ c_type(self:Printf) : type -> any else if ('I' = m) l[i]), s := substring(s, n + 2, 1000), n := get(s, '~')), - if s r :add Call(princ, list(s)), + if (length(s) > 0) r :add Call(princ, list(s)), c_code(Do(r), any))) ] diff --git a/compile/odefine.cl b/compile/odefine.cl index 5340948..596716f 100644 --- a/compile/odefine.cl +++ b/compile/odefine.cl @@ -99,7 +99,7 @@ c_code(self:Definition,s:class) : any else c_code(Let(var = %v, value = Cast(arg = c_code(Call(mClaire/new!, list(%c)), object), set_arg = %c), - arg = Do(args = analyze!(%c, %v, self.args, list()))), + arg = Do!(analyze!(%c, %v, self.args, list()))), s))) // tells if a "total instantiation" is appropriate (for exceptions) @@ -151,21 +151,25 @@ c_code(self:Definition,s:class) : any r) ] // creation of a new named object +// CLAIRE4 : native variable need a specific c_code(self:Defobj,s:class) : any - -> let %c := self.arg, o := value(self.Language/ident), - %v := (if (known?(o) & not(o % global_variable)) o - else Variable!(*name*, (OPT.max_vars :+ 1, 0), %c)), - %y1 := Call(object!, list(self.Language/ident, %c)), - %y2 := analyze!(%c, %v, self.args, list(name)), - %x:any := (if not(%v % Variable) Do(%y1 cons %y2) - else Let(var = %v, value = %y1, arg = Do(%y2))) in - (//[5] compile defobj(~S) -> ~S // self, o, + -> let %c := self.arg, o := value(self.Language/ident), %x:any := unknown in + (if (case o (global_variable nativeVar?(o))) + let %val := unknown in + (for c in self.args (if (case c (Call (c.selector = = & c.args[1] = value))) %val := c.args[2]), + %x := Gassign(var = o, arg = c_code(%val,class!(c_type(o))))) + else let %v := (if (known?(o) & not(o % global_variable)) o + else Variable!(*name*, (OPT.max_vars :+ 1, 0), %c)), + %y1 := Call(object!, list(self.Language/ident, %c)), + %y2 := analyze!(%c, %v, self.args, list(name)) in + (%x := (if not(%v % Variable) Do(%y1 cons %y2) + else Let(var = %v, value = %y1, arg = Do!(%y2))), + %x := c_code(%x, s)), + //[5] compile defobj(~S) -> ~S // self, o, if (%c.open <= 0) error("[105] cannot instantiate ~S", %c), // v3.2.44 if known?(o) - (if not(o % OPT.objects) - (OPT.objects :add o, c_register(o))) + (if not(o % OPT.objects) (OPT.objects :add o, c_register(o))) else (warn(),trace(2, "~S is unknown [265]\n", self.Language/ident)), - %x := c_code(%x, s), %x) // creation of a new named object @@ -438,7 +442,7 @@ Compile/compute_if_write_inverse(R:relation) : void l1 :add Produce_put(R.inverse,y,x), R.if_write := lambda!(list(x,y), If(test = Call(not, list(Call(%, list(y,Produce_get(R,x))))), - arg = Do(l1)))) + arg = Do!(l1)))) else (//generate an if_write demon that does the put l1 := list(Produce_put(R,x,y)), if known?(inverse,R) @@ -449,7 +453,7 @@ Compile/compute_if_write_inverse(R:relation) : void Let(var = z, value = Produce_get(R,x), arg = If(test = Call(!=,list(y,z)), - arg = Do(l1))))), + arg = Do!(l1))))), let dn := string!(R.name) /+ "_write" in (Compile/compile_lambda(dn, R.if_write, void))) @@ -467,7 +471,7 @@ Compile/compute_set_write(R:relation) : any l1 :add For(var = z, set_arg = y, arg = Produce_put(R,x,z)), let dn := string!(R.name) /+ "_set_write" in - Compile/compile_lambda(dn, lambda!(list(x,y),Do(l1)), void)) + Compile/compile_lambda(dn, lambda!(list(x,y),Do!(l1)), void)) // generate a simple put for a property => generate a case to make sure // that we get the fastest possible code @@ -584,7 +588,7 @@ c_code(self:Defrule,s:class) : any for r in Language/relations[ru] (if Language/eventMethod?(r) l :add compileEventMethod(r as property)), - c_code(Do(l), s)) + c_code(Do!(l), s)) // produce a beautiful if_write demon from all the claire demons created by each rule that applies to R [compile_if_write(R:relation) : void @@ -605,7 +609,7 @@ c_code(self:Defrule,s:class) : any (if not(R.multivalued?) l1 :add Produce_remove(R.inverse,lvar[3],lvar[1]), l1 :add Produce_put(R.inverse,lvar[2],lvar[1])), R.if_write := lambda!( list(lvar[1],lvar[2]), - (if Language/eventMethod?(R) Do(l2) + (if Language/eventMethod?(R) Do!(l2) else if R.multivalued? If(test = Call(not, list(Call(%,list(lvar[2],Language/readCall(R,lvar[1]))))), diff --git a/compile/otool.cl b/compile/otool.cl index 19c29bc..f43c9d2 100644 --- a/compile/otool.cl +++ b/compile/otool.cl @@ -543,7 +543,9 @@ get_indexed(c:class) : list -> c.slots else if (tx <= list) c_code(Call(!=,list(Call(length,list(x)),0))) else c_code(Call(boolean!,list(x)))) ] - +// this should have been created long ago +Compile/Do!(l:list) : any + -> (if (length(l) = 1) l[1] else Do(args = l)) diff --git a/docs/CompilerTable.pptx b/docs/CompilerTable.pptx index 4872e93..17b552c 100644 Binary files a/docs/CompilerTable.pptx and b/docs/CompilerTable.pptx differ diff --git a/init.cl b/init.cl index 4e7ba7a..9234dc1 100644 --- a/init.cl +++ b/init.cl @@ -1,8 +1,8 @@ (printf("Hello CLAIRE4, this is our init.cl file\n")) // Mac version -*where* :: "/Users/ycaseau/claire/v4.0/go4" // where the init file is -*output* :: "/Users/ycaseau/claire/v4.0/go4/src" +*where* :: "/Users/ycaseau/claire/v4.0/go" // where the init file is +*output* :: "/Users/ycaseau/claire/v4.0/go/src" *meta* :: "/Users/ycaseau/Dropbox/src/clairev4.03/src/meta" // source files on dropbox (v2) *compile* :: "/Users/ycaseau/Dropbox/src/clairev4.03/src/compile" // source files on dropbox (v2) *bsrc* :: "/Users/ycaseau/claire/v4.0/test/nonreg" @@ -10,16 +10,13 @@ *rsrc* :: "/Users/ycaseau/claire/v4.0/test/rules" // these are the global variables expected by the compiler -RELEASE:float :: 0.04 // December 24th, 2021 +RELEASE:float :: 0.05 // version of March 6th, 2022 + // *************************************************************************** // * Part 1: Modules & compiler environment * // *************************************************************************** -// meta files are now the "official" github directory -// (for m in {Core,Language,Reader} source(m) := *meta*, -// for m in {Optimize,Generate} source(m) := *compile*) - // where we want to generate the go code (when c := get_value("compiler") in @@ -164,6 +161,9 @@ mMonkey :: module( uses = list(Reader), source = *rsrc*, mZebra :: module( uses = list(Reader), source = *rsrc*, made_of = list("zebra")) +// airline - WIP (old CLAIRE 2 example) +mAirline :: module( uses = list(Reader), source = *rsrc*, + made_of = list("Airline")) // these are the old non-regression tests files (refreshed in July 2021) (printf("Done. \n")) diff --git a/meta/call.cl b/meta/call.cl index bf57014..aa9527b 100644 --- a/meta/call.cl +++ b/meta/call.cl @@ -105,7 +105,8 @@ self_eval(self:Call*) : any printe(self:any,s:property) : void -> (if (case self (Call (self.selector % operation & length(self.args) = 2))) - (if true printf("(~S)", self) else printexp(self, true)) + printf("(~S)", self) + // previous code (if true printf("(~S)", self) else printexp(self, true)) else printexp(self, true)) // tells if the sugar :op can be used diff --git a/meta/define.cl b/meta/define.cl index 1e8a807..6d329b6 100644 --- a/meta/define.cl +++ b/meta/define.cl @@ -697,6 +697,7 @@ eventMethod(p:property) : void jito(s), jito(self.arg), if o? put(range,v,unknown)), + While (jito(self.test), jito(self.arg)), Construct (trace(3,"-- Construct jito: ~S\n",self), jito(self.args)), Exists (jito(self.iClaire/set_arg), jito(self.arg), jito(self.other)), diff --git a/meta/function.cl b/meta/function.cl index c25b159..7a83de8 100644 --- a/meta/function.cl +++ b/meta/function.cl @@ -196,6 +196,7 @@ not(self:any) : boolean else if (self = false) true else if not(self) true // catch special cases : empty list else false) + !=(self:any,x:any) : boolean -> (if (self = x) false else true) // gives the type of any object. This is open_coded. @@ -606,10 +607,11 @@ difference(self:set,x:set) : set -> { y in self | not(contain?(x, y))} //--------- ARRAY -------------------------------------------------------- +/* defined in Kernel in v4.0.5 nth=(self:array,x:integer,y:any) : void -> (if not(y % of(self)) error("type mismatch for array update ~S, ~S",y,self) else if (x > 0 & x <= length(self)) nth_put(self,x,y) - else error("nth[~S] out of scope for ~S", x, self)) + else error("nth[~S] out of scope for ~S", x, self)) */ self_print(self:array) : void -> printf("array<~S>[~A]",of(self),length(self)) diff --git a/meta/method.cl b/meta/method.cl index b1b11f3..b80f388 100644 --- a/meta/method.cl +++ b/meta/method.cl @@ -150,7 +150,7 @@ eval(self:any) : any -> eval(self) catch any unsafe(trace(0,"---- WARNING: inline definition of ~S is wrong\n", self)), self ] -// reads a lambda +// reads a lambda - may return an error [claire/read_lambda(s:string) : lambda -> try let p := read, l := call(p, s) in (case l (lambda l, any error("compiled lambda error with ~S (not a lambda!)",s))) diff --git a/meta/types.cl b/meta/types.cl index ce5b0e4..763ef2b 100644 --- a/meta/types.cl +++ b/meta/types.cl @@ -580,11 +580,12 @@ nth_arg_type(x:type,y:type) : type // we place here all methods that require second order types !!!! nth_get(a:array,n:integer) : type[member(a)] -> nth_get(a,n) // managed by cross-compiler ? +/* v4.0.5 defined in Kernel nth(self:array,x:integer) : type[member(self)] -> (if (x > 0 & x <= length(self)) nth_get(self,x) - else error("[180] nth[~S] out of scope for ~S", x, self)) + else error("[180] nth[~S] out of scope for ~S", x, self)) */ make_array(i:integer,t:type,v:any) : type[ (if unique?(t) (the(t))[] else array)] - -> function!(make_array_integer,NEW_ALLOC) + -> function!(make_array_integer) make_list(n:integer,t:type,x:any) : type[ (if unique?(t) list[the(t)] else list)] -> (cast!(make_list(n,x),t) as list) @@ -618,6 +619,7 @@ list!(l:set) : type[(if (X = any) list else list)] put(Kernel/typing, (new! @ list(class)), object_type_class), (nth_get @ array).Kernel/typing := first_member_type, (nth @ list).Kernel/typing := nth_arg_type, + (nth @ array).Kernel/typing := nth_arg_type, // v4.0.5 (nth @ set).Kernel/typing := nth_arg_type, for r in nth+.restrictions (r as method).Kernel/typing := first_arg_type, for r in add.restrictions diff --git a/src/Core/Core-meta.go b/src/Core/Core-meta.go index 86c3fa4..2355fd3 100644 --- a/src/Core/Core-meta.go +++ b/src/Core/Core-meta.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of module Core.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:18 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:42 *****/ package Core import (_ "fmt" @@ -238,6 +238,7 @@ var C__backslash *ClaireOperation /*obj*/ var C_glb *ClaireOperation /*obj*/ var C_Core__inf_equalt *ClaireOperation /*obj*/ var C_Core__Zt *ClaireOperation /*obj*/ +var C_Core_build_powerset *ClaireProperty // Core/"build_powerset" var C_difference *ClaireProperty // claire/"difference" var C_Core_of_extract *ClaireProperty // Core/"of_extract" var C_member *ClaireProperty // claire/"member" @@ -282,6 +283,9 @@ var C_Core_thing_type_class *ClaireProperty // Core/"thing_type_class" var C_Core_object_type_class *ClaireProperty // Core/"object_type_class" var C_Core_new_defaults *ClaireProperty // Core/"new_defaults" var C_Reference_I *ClaireProperty // claire/"Reference!" +var C_read_lambda *ClaireProperty // claire/"read_lambda" +var C_Core_db_bind *ClaireProperty // Core/"db_bind" +var C_Core_db_unbind *ClaireProperty // Core/"db_unbind" var C_owner *ClaireProperty // claire/"owner" var C_check_in *ClaireProperty // claire/"check_in" var C_Core_initialize *ClaireProperty // Core/"initialize" @@ -331,20 +335,17 @@ var C_rmlast *ClaireProperty // claire/"rmlast" var C_car *ClaireProperty // claire/"car" var C_sort *ClaireProperty // claire/"sort" var C_Core_quicksort *ClaireProperty // Core/"quicksort" -var C_Core_build_powerset *ClaireProperty // Core/"build_powerset" -var C_read_lambda *ClaireProperty // claire/"read_lambda" -var C_Core_db_bind *ClaireProperty // Core/"db_bind" -var C_Core_db_unbind *ClaireProperty // Core/"db_unbind" var It *ClaireModule // definition of the meta-model for module Core func MetaLoad() { It = MakeModule("Core",C_mClaire) - It.Comment = MakeString("Compiled on Saturday 01-01-2022 16:47:18(v4.0.04), lines:2406, warnings:5,safety:5") + It.Comment = MakeString("Compiled on Sunday 03-13-2022 07:28:42(v4.0.04), lines:2410, warnings:5,safety:5") ClEnv.Module_I = It // definition of the properties + C_Core_build_powerset = MakeProperty("build_powerset",1,It) C_difference = MakeProperty("difference",1,C_claire) C_Core_of_extract = MakeProperty("of_extract",1,It) C_member = MakeProperty("member",1,C_claire) @@ -389,6 +390,9 @@ func MetaLoad() { C_Core_object_type_class = MakeProperty("object_type_class",1,It) C_Core_new_defaults = MakeProperty("new_defaults",1,It) C_Reference_I = MakeProperty("Reference!",1,C_claire) + C_read_lambda = MakeProperty("read_lambda",1,C_claire) + C_Core_db_bind = MakeProperty("db_bind",1,It) + C_Core_db_unbind = MakeProperty("db_unbind",1,It) C_owner = MakeProperty("owner",1,C_claire) C_check_in = MakeProperty("check_in",2,C_claire) C_Core_initialize = MakeProperty("initialize",1,It) @@ -438,10 +442,6 @@ func MetaLoad() { C_car = MakeProperty("car",1,C_claire) C_sort = MakeProperty("sort",1,C_claire) C_Core_quicksort = MakeProperty("quicksort",1,It) - C_Core_build_powerset = MakeProperty("build_powerset",1,It) - C_read_lambda = MakeProperty("read_lambda",1,C_claire) - C_Core_db_bind = MakeProperty("db_bind",1,It) - C_Core_db_unbind = MakeProperty("db_unbind",1,It) // instructions from module sources { @@ -729,9 +729,9 @@ func MetaLoad() { C_integer.Id(), C_object.Id()),0,MakeFunction4(E_find_which_class,"find_which_class")),MakeString("method.cl:567")) - ClEnv.Version = 0.04 + ClEnv.Version = 0.05 PRINC("-- CLAIRE run-time library v 4.") - F_princ_float(0.04) + F_princ_float(0.05) PRINC(" [os: ") PRINC("macos") PRINC(", compiler:") @@ -1030,7 +1030,7 @@ func MetaLoad() { _CL_obj = C_claire_date _CL_obj.Range = ToType(C_string.Id()) - _CL_obj.Value = MakeString("Saturday 01-01-2022").Id() + _CL_obj.Value = MakeString("Sunday 03-13-2022").Id() expr = _CL_obj.Close() } ErrorCheck(expr)} @@ -1125,76 +1125,76 @@ func MetaLoad() { _ = F_attach_method(C_not.AddMethod(Signature(C_any.Id(),C_boolean.Id()),0,MakeFunction1(E_not_any,"not_any")),MakeString("function.cl:198")) - _ = F_attach_method(C__I_equal.AddMethod(Signature(C_any.Id(),C_any.Id(),C_boolean.Id()),0,MakeFunction2(E__I_equal_any,"_I_equal_any")),MakeString("function.cl:199")) + _ = F_attach_method(C__I_equal.AddMethod(Signature(C_any.Id(),C_any.Id(),C_boolean.Id()),0,MakeFunction2(E__I_equal_any,"_I_equal_any")),MakeString("function.cl:200")) - _ = F_attach_method(C_owner.AddMethod(Signature(C_any.Id(),C_class.Id()),0,MakeFunction1(E_owner_any,"owner_any")),MakeString("function.cl:202")) + _ = F_attach_method(C_owner.AddMethod(Signature(C_any.Id(),C_class.Id()),0,MakeFunction1(E_owner_any,"owner_any")),MakeString("function.cl:203")) - _ = F_attach_method(C_known_ask.AddMethod(Signature(C_any.Id(),C_boolean.Id()),0,MakeFunction1(E_known_ask_any,"known_ask_any")),MakeString("function.cl:205")) + _ = F_attach_method(C_known_ask.AddMethod(Signature(C_any.Id(),C_boolean.Id()),0,MakeFunction1(E_known_ask_any,"known_ask_any")),MakeString("function.cl:206")) - _ = F_attach_method(C_unknown_ask.AddMethod(Signature(C_any.Id(),C_boolean.Id()),0,MakeFunction1(E_unknown_ask_any,"unknown_ask_any")),MakeString("function.cl:206")) + _ = F_attach_method(C_unknown_ask.AddMethod(Signature(C_any.Id(),C_boolean.Id()),0,MakeFunction1(E_unknown_ask_any,"unknown_ask_any")),MakeString("function.cl:207")) - _ = F_attach_method(C_check_in.AddMethod(Signature(C_any.Id(),C_type.Id(),C_any.Id()),1,MakeFunction2(E_check_in_any,"check_in_any")),MakeString("function.cl:212")) + _ = F_attach_method(C_check_in.AddMethod(Signature(C_any.Id(),C_type.Id(),C_any.Id()),1,MakeFunction2(E_check_in_any,"check_in_any")),MakeString("function.cl:213")) _ = F_attach_method(C_check_in.AddMethod(Signature(C_bag.Id(), C_class.Id(), C_type.Id(), - C_bag.Id()),1,MakeFunction3(E_check_in_bag,"check_in_bag")),MakeString("function.cl:220")) + C_bag.Id()),1,MakeFunction3(E_check_in_bag,"check_in_bag")),MakeString("function.cl:221")) - _ = F_attach_method(C__inf.AddMethod(Signature(C_any.Id(),C_any.Id(),C_boolean.Id()),1,MakeFunction2(E__inf_any,"_inf_any")),MakeString("function.cl:223")) + _ = F_attach_method(C__inf.AddMethod(Signature(C_any.Id(),C_any.Id(),C_boolean.Id()),1,MakeFunction2(E__inf_any,"_inf_any")),MakeString("function.cl:224")) - _ = F_attach_method(C__sup.AddMethod(Signature(C_any.Id(),C_any.Id(),C_boolean.Id()),1,MakeFunction2(E__sup_any,"_sup_any")),MakeString("function.cl:224")) + _ = F_attach_method(C__sup.AddMethod(Signature(C_any.Id(),C_any.Id(),C_boolean.Id()),1,MakeFunction2(E__sup_any,"_sup_any")),MakeString("function.cl:225")) - _ = F_attach_method(C_unsafe.AddMethod(Signature(C_any.Id(),C_any.Id()),0,MakeFunction1(E_unsafe_any,"unsafe_any")),MakeString("function.cl:229")) + _ = F_attach_method(C_unsafe.AddMethod(Signature(C_any.Id(),C_any.Id()),0,MakeFunction1(E_unsafe_any,"unsafe_any")),MakeString("function.cl:230")) - _ = F_attach_method(C_ephemeral.AddMethod(Signature(C_class.Id(),C_any.Id()),1,MakeFunction1(E_ephemeral_class,"ephemeral_class")),MakeString("function.cl:247")) + _ = F_attach_method(C_ephemeral.AddMethod(Signature(C_class.Id(),C_any.Id()),1,MakeFunction1(E_ephemeral_class,"ephemeral_class")),MakeString("function.cl:248")) - _ = F_attach_method(C_instanced.AddMethod(Signature(C_class.Id(),C_any.Id()),1,MakeFunction1(E_instanced_class,"instanced_class")),MakeString("function.cl:253")) + _ = F_attach_method(C_instanced.AddMethod(Signature(C_class.Id(),C_any.Id()),1,MakeFunction1(E_instanced_class,"instanced_class")),MakeString("function.cl:254")) - _ = F_attach_method(C_abstract.AddMethod(Signature(C_class.Id(),C_any.Id()),1,MakeFunction1(E_abstract_class,"abstract_class")),MakeString("function.cl:263")) + _ = F_attach_method(C_abstract.AddMethod(Signature(C_class.Id(),C_any.Id()),1,MakeFunction1(E_abstract_class,"abstract_class")),MakeString("function.cl:264")) - _ = F_attach_method(C_final.AddMethod(Signature(C_class.Id(),C_any.Id()),1,MakeFunction1(E_final_class,"final_class")),MakeString("function.cl:272")) + _ = F_attach_method(C_final.AddMethod(Signature(C_class.Id(),C_any.Id()),1,MakeFunction1(E_final_class,"final_class")),MakeString("function.cl:273")) - F_attach_method(C_new.AddMethod(Signature(C_class.Id(),C_object.Id()),1,MakeFunction1(E_new_class1,"new_class1")),MakeString("function.cl:280")).Typing = MakeFunction1(E_new_class1_type,"new_class1_type").Id() + F_attach_method(C_new.AddMethod(Signature(C_class.Id(),C_object.Id()),1,MakeFunction1(E_new_class1,"new_class1")),MakeString("function.cl:281")).Typing = MakeFunction1(E_new_class1_type,"new_class1_type").Id() - F_attach_method(C_new.AddMethod(Signature(C_class.Id(),C_symbol.Id(),C_thing.Id()),1,MakeFunction2(E_new_class2,"new_class2")),MakeString("function.cl:285")).Typing = MakeFunction2(E_new_class2_type,"new_class2_type").Id() + F_attach_method(C_new.AddMethod(Signature(C_class.Id(),C_symbol.Id(),C_thing.Id()),1,MakeFunction2(E_new_class2,"new_class2")),MakeString("function.cl:286")).Typing = MakeFunction2(E_new_class2_type,"new_class2_type").Id() - _ = F_attach_method(C_meet.AddMethod(Signature(C_class.Id(),C_class.Id(),C_class.Id()),0,MakeFunction2(E_meet_class,"meet_class")),MakeString("function.cl:299")) + _ = F_attach_method(C_meet.AddMethod(Signature(C_class.Id(),C_class.Id(),C_class.Id()),0,MakeFunction2(E_meet_class,"meet_class")),MakeString("function.cl:300")) - _ = F_attach_method(C_inherit_ask.AddMethod(Signature(C_class.Id(),C_class.Id(),C_boolean.Id()),0,MakeFunction2(E_inherit_ask_class,"inherit_ask_class")),MakeString("function.cl:306")) + _ = F_attach_method(C_inherit_ask.AddMethod(Signature(C_class.Id(),C_class.Id(),C_boolean.Id()),0,MakeFunction2(E_inherit_ask_class,"inherit_ask_class")),MakeString("function.cl:307")) - _ = F_attach_method(C_abstract.AddMethod(Signature(C_property.Id(),C_any.Id()),1,MakeFunction1(E_abstract_property,"abstract_property")),MakeString("function.cl:317")) + _ = F_attach_method(C_abstract.AddMethod(Signature(C_property.Id(),C_any.Id()),1,MakeFunction1(E_abstract_property,"abstract_property")),MakeString("function.cl:318")) - _ = F_attach_method(C_final.AddMethod(Signature(C_relation.Id(),C_void.Id()),0,MakeFunction1(E_final_relation,"final_relation")),MakeString("function.cl:328")) + _ = F_attach_method(C_final.AddMethod(Signature(C_relation.Id(),C_void.Id()),0,MakeFunction1(E_final_relation,"final_relation")),MakeString("function.cl:329")) - _ = F_attach_method(C_close.AddMethod(Signature(C_module.Id(),C_module.Id()),0,MakeFunction1(E_close_module,"close_module")),MakeString("function.cl:344")) + _ = F_attach_method(C_close.AddMethod(Signature(C_module.Id(),C_module.Id()),0,MakeFunction1(E_close_module,"close_module")),MakeString("function.cl:345")) - _ = F_attach_method(C_get_symbol.AddMethod(Signature(C_module.Id(),C_string.Id(),C_any.Id()),0,MakeFunction2(E_get_symbol_module,"#get_symbol_module")),MakeString("function.cl:347")) + _ = F_attach_method(C_get_symbol.AddMethod(Signature(C_module.Id(),C_string.Id(),C_any.Id()),0,MakeFunction2(E_get_symbol_module,"#get_symbol_module")),MakeString("function.cl:348")) - _ = F_attach_method(C_get_symbol.AddMethod(Signature(C_string.Id(),C_any.Id()),0,MakeFunction1(E_get_symbol_string,"get_symbol_string")),MakeString("function.cl:348")) + _ = F_attach_method(C_get_symbol.AddMethod(Signature(C_string.Id(),C_any.Id()),0,MakeFunction1(E_get_symbol_string,"get_symbol_string")),MakeString("function.cl:349")) - _ = F_attach_method(C_time_get.AddMethod(Signature(C_void.Id(),C_integer.Id()),0,MakeFunction1(E_time_get_void,"#time_get_void")),MakeString("function.cl:359")) + _ = F_attach_method(C_time_get.AddMethod(Signature(C_void.Id(),C_integer.Id()),0,MakeFunction1(E_time_get_void,"#time_get_void")),MakeString("function.cl:360")) - _ = F_attach_method(C_time_read.AddMethod(Signature(C_void.Id(),C_integer.Id()),0,MakeFunction1(E_time_read_void,"#time_read_void")),MakeString("function.cl:360")) + _ = F_attach_method(C_time_read.AddMethod(Signature(C_void.Id(),C_integer.Id()),0,MakeFunction1(E_time_read_void,"#time_read_void")),MakeString("function.cl:361")) - _ = F_attach_method(C_time_set.AddMethod(Signature(C_void.Id(),C_void.Id()),0,MakeFunction1(E_time_set_void,"#time_set_void")),MakeString("function.cl:361")) + _ = F_attach_method(C_time_set.AddMethod(Signature(C_void.Id(),C_void.Id()),0,MakeFunction1(E_time_set_void,"#time_set_void")),MakeString("function.cl:362")) - _ = F_attach_method(C_time_show.AddMethod(Signature(C_void.Id(),C_void.Id()),0,MakeFunction1(E_time_show_void,"#time_show_void")),MakeString("function.cl:362")) + _ = F_attach_method(C_time_show.AddMethod(Signature(C_void.Id(),C_void.Id()),0,MakeFunction1(E_time_show_void,"#time_show_void")),MakeString("function.cl:363")) - _ = F_attach_method(C_gensym.AddMethod(Signature(C_void.Id(),C_symbol.Id()),0,MakeFunction1(E_gensym_void,"gensym_void")),MakeString("function.cl:364")) + _ = F_attach_method(C_gensym.AddMethod(Signature(C_void.Id(),C_symbol.Id()),0,MakeFunction1(E_gensym_void,"gensym_void")),MakeString("function.cl:365")) _ = F_attach_method(C_store.AddMethod(Signature(C_list.Id(), C_integer.Id(), C_any.Id(), - C_any.Id()),1,MakeFunction3(E_store_list4,"store_list4")),MakeString("function.cl:369")) + C_any.Id()),1,MakeFunction3(E_store_list4,"store_list4")),MakeString("function.cl:370")) _ = F_attach_method(C_store.AddMethod(Signature(C_array.Id(), C_integer.Id(), C_any.Id(), - C_any.Id()),1,MakeFunction3(E_store_array1,"store_array1")),MakeString("function.cl:373")) + C_any.Id()),1,MakeFunction3(E_store_array1,"store_array1")),MakeString("function.cl:374")) - _ = F_attach_method(C_commit.AddMethod(Signature(C_integer.Id(),C_void.Id()),0,MakeFunction1(E_commit_integer,"commit_integer")),MakeString("function.cl:375")) + _ = F_attach_method(C_commit.AddMethod(Signature(C_integer.Id(),C_void.Id()),0,MakeFunction1(E_commit_integer,"commit_integer")),MakeString("function.cl:376")) - _ = F_attach_method(C_backtrack.AddMethod(Signature(C_integer.Id(),C_void.Id()),0,MakeFunction1(E_backtrack_integer,"backtrack_integer")),MakeString("function.cl:376")) + _ = F_attach_method(C_backtrack.AddMethod(Signature(C_integer.Id(),C_void.Id()),0,MakeFunction1(E_backtrack_integer,"backtrack_integer")),MakeString("function.cl:377")) { var expr EID @@ -1232,151 +1232,146 @@ func MetaLoad() { } ErrorCheck(expr)} - _ = F_attach_method(C_store.AddMethod(Signature(C_listargs.Id(),C_any.Id()),0,MakeFunction1(E_store_listargs,"store_listargs")),MakeString("function.cl:386")) + _ = F_attach_method(C_store.AddMethod(Signature(C_listargs.Id(),C_any.Id()),0,MakeFunction1(E_store_listargs,"store_listargs")),MakeString("function.cl:387")) - _ = F_attach_method(C_symbol_I.AddMethod(Signature(C_string.Id(),C_symbol.Id()),0,MakeFunction1(E_symbol_I_string2,"symbol_I_string2")),MakeString("function.cl:397")) + _ = F_attach_method(C_symbol_I.AddMethod(Signature(C_string.Id(),C_symbol.Id()),0,MakeFunction1(E_symbol_I_string2,"symbol_I_string2")),MakeString("function.cl:398")) _ = F_attach_method(C_nth_get.AddMethod(Signature(C_string.Id(), C_integer.Id(), C_integer.Id(), - C_char.Id()),1,MakeFunction3(E_nth_get_string,"nth_get_string")),MakeString("function.cl:401")) + C_char.Id()),1,MakeFunction3(E_nth_get_string,"nth_get_string")),MakeString("function.cl:402")) _ = F_attach_method(C_nth_put.AddMethod(Signature(C_string.Id(), C_integer.Id(), C_char.Id(), C_integer.Id(), - C_void.Id()),1,MakeFunction4(E_nth_put_string,"nth_put_string")),MakeString("function.cl:403")) + C_void.Id()),1,MakeFunction4(E_nth_put_string,"nth_put_string")),MakeString("function.cl:404")) - _ = F_attach_method(C_getenv.AddMethod(Signature(C_string.Id(),C_string.Id()),0,MakeFunction1(E_getenv_string,"#getenv_string")),MakeString("function.cl:406")) + _ = F_attach_method(C_getenv.AddMethod(Signature(C_string.Id(),C_string.Id()),0,MakeFunction1(E_getenv_string,"#getenv_string")),MakeString("function.cl:407")) - _ = F_attach_method(C_get_value.AddMethod(Signature(C_string.Id(),C_any.Id()),0,MakeFunction1(E_value_string,"#value_string")),MakeString("function.cl:407")) + _ = F_attach_method(C_get_value.AddMethod(Signature(C_string.Id(),C_any.Id()),0,MakeFunction1(E_value_string,"#value_string")),MakeString("function.cl:408")) - _ = F_attach_method(C_get_value.AddMethod(Signature(C_module.Id(),C_string.Id(),C_any.Id()),0,MakeFunction2(E_value_module,"#value_module")),MakeString("function.cl:408")) + _ = F_attach_method(C_get_value.AddMethod(Signature(C_module.Id(),C_string.Id(),C_any.Id()),0,MakeFunction2(E_value_module,"#value_module")),MakeString("function.cl:409")) - _ = F_attach_method(C_externC.AddMethod(Signature(C_string.Id(),C_void.Id()),1,MakeFunction1(E_externC_string,"externC_string")),MakeString("function.cl:411")) + _ = F_attach_method(C_externC.AddMethod(Signature(C_string.Id(),C_void.Id()),1,MakeFunction1(E_externC_string,"externC_string")),MakeString("function.cl:412")) - F_attach_method(C_externC.AddMethod(Signature(C_string.Id(),C_class.Id(),C_any.Id()),1,MakeFunction2(E_externC_string2,"externC_string2")),MakeString("function.cl:412")).Typing = MakeFunction2(E_externC_string2_type,"externC_string2_type").Id() + F_attach_method(C_externC.AddMethod(Signature(C_string.Id(),C_class.Id(),C_any.Id()),1,MakeFunction2(E_externC_string2,"externC_string2")),MakeString("function.cl:413")).Typing = MakeFunction2(E_externC_string2_type,"externC_string2_type").Id() - _ = F_attach_method(C_make_string.AddMethod(Signature(C_symbol.Id(),C_string.Id()),1,MakeFunction1(E_make_string_symbol,"make_string_symbol")),MakeString("function.cl:417")) + _ = F_attach_method(C_make_string.AddMethod(Signature(C_symbol.Id(),C_string.Id()),1,MakeFunction1(E_make_string_symbol,"make_string_symbol")),MakeString("function.cl:418")) - _ = F_attach_method(C_self_print.AddMethod(Signature(C_symbol.Id(),C_void.Id()),1,MakeFunction1(E_self_print_symbol_Core,"self_print_symbol_Core")),MakeString("function.cl:419")) + _ = F_attach_method(C_self_print.AddMethod(Signature(C_symbol.Id(),C_void.Id()),1,MakeFunction1(E_self_print_symbol_Core,"self_print_symbol_Core")),MakeString("function.cl:420")) - F_attach_method(C__plus.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_integer.Id()),0,MakeFunction2(E__plus_integer,"_plus_integer")),MakeString("function.cl:424")).Typing = MakeFunction2(E__plus_integer_type,"_plus_integer_type").Id() + F_attach_method(C__plus.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_integer.Id()),0,MakeFunction2(E__plus_integer,"_plus_integer")),MakeString("function.cl:425")).Typing = MakeFunction2(E__plus_integer_type,"_plus_integer_type").Id() - F_attach_method(C__dash.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_integer.Id()),0,MakeFunction2(E__dash_integer1,"_dash_integer1")),MakeString("function.cl:425")).Typing = MakeFunction2(E__dash_integer1_type,"_dash_integer1_type").Id() + F_attach_method(C__dash.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_integer.Id()),0,MakeFunction2(E__dash_integer1,"_dash_integer1")),MakeString("function.cl:426")).Typing = MakeFunction2(E__dash_integer1_type,"_dash_integer1_type").Id() - _ = F_attach_method(C__dash_dash_ask.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_collection.Id()),0,MakeFunction2(E_sequence_integer,"#sequence_integer")),MakeString("function.cl:430")) + _ = F_attach_method(C__dash_dash_ask.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_collection.Id()),0,MakeFunction2(E_sequence_integer,"#sequence_integer")),MakeString("function.cl:431")) - _ = F_attach_method(C__dash_dash_I.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_list.Id()),0,MakeFunction2(E_list_integer,"#list_integer")),MakeString("function.cl:431")) + _ = F_attach_method(C__dash_dash_I.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_list.Id()),0,MakeFunction2(E_list_integer,"#list_integer")),MakeString("function.cl:432")) - _ = F_attach_method(C_exit.AddMethod(Signature(C_integer.Id(),C_void.Id()),0,MakeFunction1(E_CL_exit,"#CL_exit")),MakeString("function.cl:432")) + _ = F_attach_method(C_exit.AddMethod(Signature(C_integer.Id(),C_void.Id()),0,MakeFunction1(E_CL_exit,"#CL_exit")),MakeString("function.cl:433")) - _ = F_attach_method(C__inf_inf.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_integer.Id()),0,MakeFunction2(E__inf_inf_integer,"_inf_inf_integer")),MakeString("function.cl:434")) + _ = F_attach_method(C__inf_inf.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_integer.Id()),0,MakeFunction2(E__inf_inf_integer,"_inf_inf_integer")),MakeString("function.cl:435")) - _ = F_attach_method(C__sup_sup.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_integer.Id()),0,MakeFunction2(E__sup_sup_integer,"_sup_sup_integer")),MakeString("function.cl:435")) + _ = F_attach_method(C__sup_sup.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_integer.Id()),0,MakeFunction2(E__sup_sup_integer,"_sup_sup_integer")),MakeString("function.cl:436")) - _ = F_attach_method(C_and.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_integer.Id()),0,MakeFunction2(E_and_integer,"and_integer")),MakeString("function.cl:436")) + _ = F_attach_method(C_and.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_integer.Id()),0,MakeFunction2(E_and_integer,"and_integer")),MakeString("function.cl:437")) - _ = F_attach_method(C_or.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_integer.Id()),0,MakeFunction2(E_or_integer,"or_integer")),MakeString("function.cl:437")) + _ = F_attach_method(C_or.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_integer.Id()),0,MakeFunction2(E_or_integer,"or_integer")),MakeString("function.cl:438")) - _ = F_attach_method(C__inf.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_boolean.Id()),0,MakeFunction2(E__inf_integer,"_inf_integer")),MakeString("function.cl:440")) + _ = F_attach_method(C__inf.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_boolean.Id()),0,MakeFunction2(E__inf_integer,"_inf_integer")),MakeString("function.cl:441")) - _ = F_attach_method(C__inf_equal.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_boolean.Id()),0,MakeFunction2(E__inf_equal_integer,"_inf_equal_integer")),MakeString("function.cl:441")) + _ = F_attach_method(C__inf_equal.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_boolean.Id()),0,MakeFunction2(E__inf_equal_integer,"_inf_equal_integer")),MakeString("function.cl:442")) - _ = F_attach_method(C__sup.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_boolean.Id()),0,MakeFunction2(E__sup_integer,"_sup_integer")),MakeString("function.cl:442")) + _ = F_attach_method(C__sup.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_boolean.Id()),0,MakeFunction2(E__sup_integer,"_sup_integer")),MakeString("function.cl:443")) - _ = F_attach_method(C_nth.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_boolean.Id()),0,MakeFunction2(E_nth_integer,"nth_integer")),MakeString("function.cl:443")) + _ = F_attach_method(C_nth.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_boolean.Id()),0,MakeFunction2(E_nth_integer,"nth_integer")),MakeString("function.cl:444")) - _ = F_attach_method(C_abs.AddMethod(Signature(C_integer.Id(),C_integer.Id()),0,MakeFunction1(E_abs_integer,"abs_integer")),MakeString("function.cl:445")) + _ = F_attach_method(C_abs.AddMethod(Signature(C_integer.Id(),C_integer.Id()),0,MakeFunction1(E_abs_integer,"abs_integer")),MakeString("function.cl:446")) - _ = F_attach_method(C_random.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_integer.Id()),0,MakeFunction2(E_random_integer2,"random_integer2")),MakeString("function.cl:446")) + _ = F_attach_method(C_random.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_integer.Id()),0,MakeFunction2(E_random_integer2,"random_integer2")),MakeString("function.cl:447")) - _ = F_attach_method(C_factor_ask.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_boolean.Id()),1,MakeFunction2(E_factor_ask_integer,"factor_ask_integer")),MakeString("function.cl:449")) + _ = F_attach_method(C_factor_ask.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_boolean.Id()),1,MakeFunction2(E_factor_ask_integer,"factor_ask_integer")),MakeString("function.cl:450")) - _ = F_attach_method(C_divide_ask.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_boolean.Id()),1,MakeFunction2(E_divide_ask_integer,"divide_ask_integer")),MakeString("function.cl:450")) + _ = F_attach_method(C_divide_ask.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_boolean.Id()),1,MakeFunction2(E_divide_ask_integer,"divide_ask_integer")),MakeString("function.cl:451")) - F_attach_method(C_Id.AddMethod(Signature(C_any.Id(),C_any.Id()),0,MakeFunction1(E_Id_any,"Id_any")),MakeString("function.cl:451")).Typing = MakeFunction1(E_Id_any_type,"Id_any_type").Id() + F_attach_method(C_Id.AddMethod(Signature(C_any.Id(),C_any.Id()),0,MakeFunction1(E_Id_any,"Id_any")),MakeString("function.cl:452")).Typing = MakeFunction1(E_Id_any_type,"Id_any_type").Id() - _ = F_attach_method(C_self_print.AddMethod(Signature(C_float.Id(),C_void.Id()),0,MakeFunction1(E_print_float,"#print_float")),MakeString("function.cl:454")) + _ = F_attach_method(C_self_print.AddMethod(Signature(C_float.Id(),C_void.Id()),0,MakeFunction1(E_print_float,"#print_float")),MakeString("function.cl:455")) - _ = F_attach_method(C__plus.AddMethod(Signature(C_float.Id(),C_float.Id(),C_float.Id()),0,MakeFunction2(E__plus_float,"_plus_float")),MakeString("function.cl:455")) + _ = F_attach_method(C__plus.AddMethod(Signature(C_float.Id(),C_float.Id(),C_float.Id()),0,MakeFunction2(E__plus_float,"_plus_float")),MakeString("function.cl:456")) - _ = F_attach_method(C__dash.AddMethod(Signature(C_float.Id(),C_float.Id(),C_float.Id()),0,MakeFunction2(E__dash_float,"_dash_float")),MakeString("function.cl:456")) + _ = F_attach_method(C__dash.AddMethod(Signature(C_float.Id(),C_float.Id(),C_float.Id()),0,MakeFunction2(E__dash_float,"_dash_float")),MakeString("function.cl:457")) - _ = F_attach_method(C__star.AddMethod(Signature(C_float.Id(),C_float.Id(),C_float.Id()),0,MakeFunction2(E__star_float,"_star_float")),MakeString("function.cl:457")) + _ = F_attach_method(C__star.AddMethod(Signature(C_float.Id(),C_float.Id(),C_float.Id()),0,MakeFunction2(E__star_float,"_star_float")),MakeString("function.cl:458")) - _ = F_attach_method(C__7.AddMethod(Signature(C_float.Id(),C_float.Id(),C_float.Id()),0,MakeFunction2(E__7_float,"_7_float")),MakeString("function.cl:458")) + _ = F_attach_method(C__7.AddMethod(Signature(C_float.Id(),C_float.Id(),C_float.Id()),0,MakeFunction2(E__7_float,"_7_float")),MakeString("function.cl:459")) - _ = F_attach_method(C__dash.AddMethod(Signature(C_float.Id(),C_float.Id()),0,MakeFunction1(E__dash_float2,"_dash_float2")),MakeString("function.cl:465")) + _ = F_attach_method(C__dash.AddMethod(Signature(C_float.Id(),C_float.Id()),0,MakeFunction1(E__dash_float2,"_dash_float2")),MakeString("function.cl:466")) - _ = F_attach_method(C_string_I.AddMethod(Signature(C_float.Id(),C_string.Id()),1,MakeFunction1(E_string_I_float,"string_I_float")),MakeString("function.cl:467")) + _ = F_attach_method(C_string_I.AddMethod(Signature(C_float.Id(),C_string.Id()),1,MakeFunction1(E_string_I_float,"string_I_float")),MakeString("function.cl:468")) - _ = F_attach_method(C_princ.AddMethod(Signature(C_float.Id(),C_integer.Id(),C_void.Id()),0,MakeFunction2(E_print_format_float,"#print_format_float")),MakeString("function.cl:468")) + _ = F_attach_method(C_princ.AddMethod(Signature(C_float.Id(),C_integer.Id(),C_void.Id()),0,MakeFunction2(E_print_format_float,"#print_format_float")),MakeString("function.cl:469")) - _ = F_attach_method(C_abs.AddMethod(Signature(C_float.Id(),C_float.Id()),0,MakeFunction1(E_abs_float,"abs_float")),MakeString("function.cl:470")) + _ = F_attach_method(C_abs.AddMethod(Signature(C_float.Id(),C_float.Id()),0,MakeFunction1(E_abs_float,"abs_float")),MakeString("function.cl:471")) - _ = F_attach_method(C_mClaire_printFDigit.AddMethod(Signature(C_float.Id(),C_integer.Id(),C_void.Id()),1,MakeFunction2(E_printFDigit_float,"printFDigit_float")),MakeString("function.cl:478")) + _ = F_attach_method(C_mClaire_printFDigit.AddMethod(Signature(C_float.Id(),C_integer.Id(),C_void.Id()),1,MakeFunction2(E_printFDigit_float,"printFDigit_float")),MakeString("function.cl:479")) - _ = F_attach_method(C_mClaire_printFDigit.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_void.Id()),1,MakeFunction2(E_printFDigit_integer,"printFDigit_integer")),MakeString("function.cl:483")) + _ = F_attach_method(C_mClaire_printFDigit.AddMethod(Signature(C_integer.Id(),C_integer.Id(),C_void.Id()),1,MakeFunction2(E_printFDigit_integer,"printFDigit_integer")),MakeString("function.cl:484")) - _ = F_attach_method(C_mClaire_nth_object.AddMethod(Signature(C_list.Id(),C_integer.Id(),C_any.Id()),0,MakeFunction2(E_mClaire_nth_object_list,"mClaire_nth_object_list")),MakeString("function.cl:491")) + _ = F_attach_method(C_mClaire_nth_object.AddMethod(Signature(C_list.Id(),C_integer.Id(),C_any.Id()),0,MakeFunction2(E_mClaire_nth_object_list,"mClaire_nth_object_list")),MakeString("function.cl:492")) _ = F_attach_method(C_nth_write.AddMethod(Signature(C_list.Id(), C_integer.Id(), C_any.Id(), - C_any.Id()),1,MakeFunction3(E_nth_write_list,"nth_write_list")),MakeString("function.cl:504")) + C_any.Id()),1,MakeFunction3(E_nth_write_list,"nth_write_list")),MakeString("function.cl:505")) - F_attach_method(C_min.AddMethod(Signature(C_method.Id(),C_set.Id(),C_any.Id()),1,MakeFunction2(E_min_method2,"min_method2")),MakeString("function.cl:511")).Typing = MakeFunction2(E_min_method2_type,"min_method2_type").Id() + F_attach_method(C_min.AddMethod(Signature(C_method.Id(),C_set.Id(),C_any.Id()),1,MakeFunction2(E_min_method2,"min_method2")),MakeString("function.cl:512")).Typing = MakeFunction2(E_min_method2_type,"min_method2_type").Id() - F_attach_method(C_max.AddMethod(Signature(C_method.Id(),C_set.Id(),C_any.Id()),1,MakeFunction2(E_max_method2,"max_method2")),MakeString("function.cl:517")).Typing = MakeFunction2(E_max_method2_type,"max_method2_type").Id() + F_attach_method(C_max.AddMethod(Signature(C_method.Id(),C_set.Id(),C_any.Id()),1,MakeFunction2(E_max_method2,"max_method2")),MakeString("function.cl:518")).Typing = MakeFunction2(E_max_method2_type,"max_method2_type").Id() - F_attach_method(C_min.AddMethod(Signature(C_method.Id(),C_list.Id(),C_any.Id()),1,MakeFunction2(E_min_method3,"min_method3")),MakeString("function.cl:525")).Typing = MakeFunction2(E_min_method3_type,"min_method3_type").Id() + F_attach_method(C_min.AddMethod(Signature(C_method.Id(),C_list.Id(),C_any.Id()),1,MakeFunction2(E_min_method3,"min_method3")),MakeString("function.cl:526")).Typing = MakeFunction2(E_min_method3_type,"min_method3_type").Id() - F_attach_method(C_max.AddMethod(Signature(C_method.Id(),C_list.Id(),C_any.Id()),1,MakeFunction2(E_max_method3,"max_method3")),MakeString("function.cl:532")).Typing = MakeFunction2(E_max_method3_type,"max_method3_type").Id() + F_attach_method(C_max.AddMethod(Signature(C_method.Id(),C_list.Id(),C_any.Id()),1,MakeFunction2(E_max_method3,"max_method3")),MakeString("function.cl:533")).Typing = MakeFunction2(E_max_method3_type,"max_method3_type").Id() - F_attach_method(C_random.AddMethod(Signature(C_list.Id(),C_any.Id()),0,MakeFunction1(E_random_list,"random_list")),MakeString("function.cl:537")).Typing = MakeFunction1(E_random_list_type,"random_list_type").Id() + F_attach_method(C_random.AddMethod(Signature(C_list.Id(),C_any.Id()),0,MakeFunction1(E_random_list,"random_list")),MakeString("function.cl:538")).Typing = MakeFunction1(E_random_list_type,"random_list_type").Id() - F_attach_method(C_last.AddMethod(Signature(C_list.Id(),C_any.Id()),1,MakeFunction1(E_last_list,"last_list")),MakeString("function.cl:542")).Typing = MakeFunction1(E_last_list_type,"last_list_type").Id() + F_attach_method(C_last.AddMethod(Signature(C_list.Id(),C_any.Id()),1,MakeFunction1(E_last_list,"last_list")),MakeString("function.cl:543")).Typing = MakeFunction1(E_last_list_type,"last_list_type").Id() - _ = F_attach_method(C_rmlast.AddMethod(Signature(C_list.Id(),C_list.Id()),1,MakeFunction1(E_rmlast_list,"rmlast_list")),MakeString("function.cl:545")) + _ = F_attach_method(C_rmlast.AddMethod(Signature(C_list.Id(),C_list.Id()),1,MakeFunction1(E_rmlast_list,"rmlast_list")),MakeString("function.cl:546")) - _ = F_attach_method(C_car.AddMethod(Signature(C_list.Id(),C_any.Id()),1,MakeFunction1(E_car_list,"car_list")),MakeString("function.cl:549")) + _ = F_attach_method(C_car.AddMethod(Signature(C_list.Id(),C_any.Id()),1,MakeFunction1(E_car_list,"car_list")),MakeString("function.cl:550")) - _ = F_attach_method(C_sort.AddMethod(Signature(C_method.Id(),C_list.Id(),C_list.Id()),1,MakeFunction2(E_sort_method,"sort_method")),MakeString("function.cl:553")) + _ = F_attach_method(C_sort.AddMethod(Signature(C_method.Id(),C_list.Id(),C_list.Id()),1,MakeFunction2(E_sort_method,"sort_method")),MakeString("function.cl:554")) _ = F_attach_method(C_Core_quicksort.AddMethod(Signature(C_list.Id(), C_method.Id(), C_integer.Id(), C_integer.Id(), - C_void.Id()),1,MakeFunction4(E_quicksort_list,"quicksort_list")),MakeString("function.cl:573")) + C_void.Id()),1,MakeFunction4(E_quicksort_list,"quicksort_list")),MakeString("function.cl:574")) - _ = F_attach_method(C_Core_build_powerset.AddMethod(Signature(C_list.Id(),C_set.Id()),0,MakeFunction1(E_build_powerset_list,"build_powerset_list")),MakeString("function.cl:582")) + _ = F_attach_method(C_Core_build_powerset.AddMethod(Signature(C_list.Id(),C_set.Id()),0,MakeFunction1(E_build_powerset_list,"build_powerset_list")),MakeString("function.cl:583")) - _ = F_attach_method(C__inf_inf.AddMethod(Signature(C_list.Id(),C_integer.Id(),C_list.Id()),0,MakeFunction2(E_skip_list,"#skip_list")),MakeString("function.cl:585")) + _ = F_attach_method(C__inf_inf.AddMethod(Signature(C_list.Id(),C_integer.Id(),C_list.Id()),0,MakeFunction2(E_skip_list,"#skip_list")),MakeString("function.cl:586")) - _ = F_attach_method(C_make_copy_list.AddMethod(Signature(C_integer.Id(),C_any.Id(),C_list.Id()),0,MakeFunction2(E_make_copy_list_integer,"make_copy_list_integer")),MakeString("function.cl:591")) + _ = F_attach_method(C_make_copy_list.AddMethod(Signature(C_integer.Id(),C_any.Id(),C_list.Id()),0,MakeFunction2(E_make_copy_list_integer,"make_copy_list_integer")),MakeString("function.cl:592")) _ = F_attach_method(C_typed_copy_list.AddMethod(Signature(C_type.Id(), C_integer.Id(), C_any.Id(), - C_list.Id()),0,MakeFunction3(E_typed_copy_list_type,"typed_copy_list_type")),MakeString("function.cl:599")) + C_list.Id()),0,MakeFunction3(E_typed_copy_list_type,"typed_copy_list_type")),MakeString("function.cl:600")) - _ = F_attach_method(C_difference.AddMethod(Signature(C_set.Id(),C_set.Id(),C_set.Id()),0,MakeFunction2(E_difference_set,"difference_set")),MakeString("function.cl:602")) + _ = F_attach_method(C_difference.AddMethod(Signature(C_set.Id(),C_set.Id(),C_set.Id()),0,MakeFunction2(E_difference_set,"difference_set")),MakeString("function.cl:603")) - _ = F_attach_method(C__at.AddMethod(Signature(C_type.Id(),C_property.Id(),C_type.Id()),0,MakeFunction2(E__at_type,"#_at_type")),MakeString("function.cl:605")) + _ = F_attach_method(C__at.AddMethod(Signature(C_type.Id(),C_property.Id(),C_type.Id()),0,MakeFunction2(E__at_type,"#_at_type")),MakeString("function.cl:606")) - _ = F_attach_method(C_nth_equal.AddMethod(Signature(C_array.Id(), - C_integer.Id(), - C_any.Id(), - C_void.Id()),1,MakeFunction3(E_nth_equal_array,"nth_equal_array")),MakeString("function.cl:612")) + _ = F_attach_method(C_self_print.AddMethod(Signature(C_array.Id(),C_void.Id()),1,MakeFunction1(E_self_print_array_Core,"self_print_array_Core")),MakeString("function.cl:616")) - _ = F_attach_method(C_self_print.AddMethod(Signature(C_array.Id(),C_void.Id()),1,MakeFunction1(E_self_print_array_Core,"self_print_array_Core")),MakeString("function.cl:614")) + _ = F_attach_method(C_self_print.AddMethod(Signature(C_char.Id(),C_void.Id()),0,MakeFunction1(E_self_print_char_Core,"self_print_char_Core")),MakeString("function.cl:619")) - _ = F_attach_method(C_self_print.AddMethod(Signature(C_char.Id(),C_void.Id()),0,MakeFunction1(E_self_print_char_Core,"self_print_char_Core")),MakeString("function.cl:617")) + _ = F_attach_method(C__inf_equal.AddMethod(Signature(C_char.Id(),C_char.Id(),C_boolean.Id()),0,MakeFunction2(E__inf_equal_char,"_inf_equal_char")),MakeString("function.cl:620")) - _ = F_attach_method(C__inf_equal.AddMethod(Signature(C_char.Id(),C_char.Id(),C_boolean.Id()),0,MakeFunction2(E__inf_equal_char,"_inf_equal_char")),MakeString("function.cl:618")) - - _ = F_attach_method(C_random.AddMethod(Signature(C_boolean.Id(),C_boolean.Id()),0,MakeFunction1(E_random_boolean,"random_boolean")),MakeString("function.cl:622")) + _ = F_attach_method(C_random.AddMethod(Signature(C_boolean.Id(),C_boolean.Id()),0,MakeFunction1(E_random_boolean,"random_boolean")),MakeString("function.cl:624")) C__dash_dash = ToOperation(new(ClaireOperation).IsNamed(C_operation,MakeSymbol("--",C_claire))) C__dash_dash.Precedence = C__dot_dot.Precedence @@ -1594,31 +1589,29 @@ func MetaLoad() { F_attach_method(C_nth_get.AddMethod(Signature(C_array.Id(),C_integer.Id(),C_any.Id()),0,MakeFunction2(E_nth_get_array,"nth_get_array")),MakeString("types.cl:582")).Typing = MakeFunction2(E_nth_get_array_type,"nth_get_array_type").Id() - F_attach_method(C_nth.AddMethod(Signature(C_array.Id(),C_integer.Id(),C_any.Id()),1,MakeFunction2(E_nth_array,"nth_array")),MakeString("types.cl:585")).Typing = MakeFunction2(E_nth_array_type,"nth_array_type").Id() - F_attach_method(C_make_array.AddMethod(Signature(C_integer.Id(), C_type.Id(), C_any.Id(), - C_array.Id()),0,MakeFunction3(E_make_array_integer,"#make_array_integer")),MakeString("types.cl:587")).Typing = MakeFunction3(E_make_array_integer_type,"make_array_integer_type").Id() + C_array.Id()),0,MakeFunction3(E_make_array_integer,"#make_array_integer")),MakeString("types.cl:588")).Typing = MakeFunction3(E_make_array_integer_type,"make_array_integer_type").Id() F_attach_method(C_make_list.AddMethod(Signature(C_integer.Id(), C_type.Id(), C_any.Id(), - C_list.Id()),0,MakeFunction3(E_make_list_integer2,"make_list_integer2")),MakeString("types.cl:590")).Typing = MakeFunction3(E_make_list_integer2_type,"make_list_integer2_type").Id() + C_list.Id()),0,MakeFunction3(E_make_list_integer2,"make_list_integer2")),MakeString("types.cl:591")).Typing = MakeFunction3(E_make_list_integer2_type,"make_list_integer2_type").Id() - F_attach_method(C_make_set.AddMethod(Signature(F_nth_class2(C_array,MakeList(ToType(C_any.Id()),C_of.Id()),MakeConstantList(C_any.Id())).Id(),C_set.Id()),0,MakeFunction1(E_make_set_array,"make_set_array")),MakeString("types.cl:593")).Typing = MakeFunction1(E_make_set_array_type,"make_set_array_type").Id() + F_attach_method(C_make_set.AddMethod(Signature(F_nth_class2(C_array,MakeList(ToType(C_any.Id()),C_of.Id()),MakeConstantList(C_any.Id())).Id(),C_set.Id()),0,MakeFunction1(E_make_set_array,"make_set_array")),MakeString("types.cl:594")).Typing = MakeFunction1(E_make_set_array_type,"make_set_array_type").Id() - F_attach_method(C_list_I.AddMethod(Signature(F_nth_class2(C_array,MakeList(ToType(C_any.Id()),C_of.Id()),MakeConstantList(C_any.Id())).Id(),C_list.Id()),0,MakeFunction1(E_list_I_array,"#list_I_array")),MakeString("types.cl:598")).Typing = MakeFunction1(E_list_I_array_type,"list_I_array_type").Id() + F_attach_method(C_list_I.AddMethod(Signature(F_nth_class2(C_array,MakeList(ToType(C_any.Id()),C_of.Id()),MakeConstantList(C_any.Id())).Id(),C_list.Id()),0,MakeFunction1(E_list_I_array,"#list_I_array")),MakeString("types.cl:599")).Typing = MakeFunction1(E_list_I_array_type,"list_I_array_type").Id() - F_attach_method(C_array_I.AddMethod(Signature(F_nth_class2(C_list,MakeList(ToType(C_any.Id()),C_of.Id()),MakeConstantList(C_any.Id())).Id(),C_array.Id()),0,MakeFunction1(E_array_I_list,"#array_I_list")),MakeString("types.cl:600")).Typing = MakeFunction1(E_array_I_list_type,"array_I_list_type").Id() + F_attach_method(C_array_I.AddMethod(Signature(F_nth_class2(C_list,MakeList(ToType(C_any.Id()),C_of.Id()),MakeConstantList(C_any.Id())).Id(),C_array.Id()),0,MakeFunction1(E_array_I_list,"#array_I_list")),MakeString("types.cl:601")).Typing = MakeFunction1(E_array_I_list_type,"array_I_list_type").Id() - F_attach_method(C_set_I.AddMethod(Signature(F_nth_class2(C_list,MakeList(ToType(C_any.Id()),C_of.Id()),MakeConstantList(C_any.Id())).Id(),C_set.Id()),0,MakeFunction1(E_set_I_list,"set_I_list")),MakeString("types.cl:603")).Typing = MakeFunction1(E_set_I_list_type,"set_I_list_type").Id() + F_attach_method(C_set_I.AddMethod(Signature(F_nth_class2(C_list,MakeList(ToType(C_any.Id()),C_of.Id()),MakeConstantList(C_any.Id())).Id(),C_set.Id()),0,MakeFunction1(E_set_I_list,"set_I_list")),MakeString("types.cl:604")).Typing = MakeFunction1(E_set_I_list_type,"set_I_list_type").Id() - F_attach_method(C_list_I.AddMethod(Signature(F_nth_class2(C_set,MakeList(ToType(C_any.Id()),C_of.Id()),MakeConstantList(C_any.Id())).Id(),C_list.Id()),0,MakeFunction1(E_list_I_set,"#list_I_set")),MakeString("types.cl:605")).Typing = MakeFunction1(E_list_I_set_type,"list_I_set_type").Id() + F_attach_method(C_list_I.AddMethod(Signature(F_nth_class2(C_set,MakeList(ToType(C_any.Id()),C_of.Id()),MakeConstantList(C_any.Id())).Id(),C_list.Id()),0,MakeFunction1(E_list_I_set,"#list_I_set")),MakeString("types.cl:606")).Typing = MakeFunction1(E_list_I_set_type,"list_I_set_type").Id() - _ = F_attach_method(C_Core_thing_type_class.AddMethod(Signature(C_type.Id(),C_type.Id(),C_type.Id()),0,MakeFunction2(E_Core_thing_type_class_type2,"Core_thing_type_class_type2")),MakeString("types.cl:608")) + _ = F_attach_method(C_Core_thing_type_class.AddMethod(Signature(C_type.Id(),C_type.Id(),C_type.Id()),0,MakeFunction2(E_Core_thing_type_class_type2,"Core_thing_type_class_type2")),MakeString("types.cl:609")) - _ = F_attach_method(C_Core_object_type_class.AddMethod(Signature(C_type.Id(),C_type.Id()),0,MakeFunction1(E_Core_object_type_class_type,"Core_object_type_class_type")),MakeString("types.cl:609")) + _ = F_attach_method(C_Core_object_type_class.AddMethod(Signature(C_type.Id(),C_type.Id()),0,MakeFunction1(E_Core_object_type_class_type,"Core_object_type_class_type")),MakeString("types.cl:610")) { var r *ClaireRestriction @@ -1660,6 +1653,7 @@ func MetaLoad() { ToMethod(F__at_property2(C_mClaire_new_I,MakeConstantList(C_class.Id())).Id()).Typing = C_Core_object_type_class.Id() ToMethod(F__at_property1(C_nth_get,C_array).Id()).Typing = C_Core_first_member_type.Id() ToMethod(F__at_property1(C_nth,C_list).Id()).Typing = C_Core_nth_arg_type.Id() + ToMethod(F__at_property1(C_nth,C_array).Id()).Typing = C_Core_nth_arg_type.Id() ToMethod(F__at_property1(C_nth,C_set).Id()).Typing = C_Core_nth_arg_type.Id() { var r *ClaireRestriction diff --git a/src/Core/function.go b/src/Core/function.go index 9de568f..4ca187d 100644 --- a/src/Core/function.go +++ b/src/Core/function.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/meta/function.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:18 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:42 *****/ package Core import (_ "fmt" @@ -263,7 +263,6 @@ func F_self_print_function_Core (self *ClaireFunction ) { // procedure body with s = void PRINC("#'") F_princ_string(F_string_I_function(self)) - PRINC("") } // The EID go function for: self_print @ function (throw: false) @@ -310,10 +309,6 @@ func F_self_print_restriction_Core (self *ClaireRestriction ) EID { } Result = F_print_any(arg_1.Id()) } - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - } } } } @@ -403,8 +398,8 @@ func E_print_any (x EID) EID { // short_enough = we expect that what we want to print is short enough (more that 10 chars to the width) /* The go function for: short_enough(self:integer) [status=0] */ func F_short_enough_integer (self int) *ClaireBoolean { - if (self < C_pretty.Width) {return CTRUE - } else {return CFALSE}} + return F__inf_integer(self,C_pretty.Width) + } // The EID go function for: short_enough @ integer (throw: false) func E_short_enough_integer (self EID) EID { @@ -515,14 +510,14 @@ func E_Core_new_defaults_object (self EID,lp EID) EID { /* The go function for: not(self:any) [status=0] */ func F_not_any (self *ClaireAny ) *ClaireBoolean { if (self == CTRUE.Id()) { - if (CFALSE == CTRUE) {return CTRUE - } else {return CFALSE}} else if (self == CFALSE.Id()) { - if (CTRUE == CTRUE) {return CTRUE - } else {return CFALSE}} else if (F_boolean_I_any(self).Id() != CTRUE.Id()) { - if (CTRUE == CTRUE) {return CTRUE - } else {return CFALSE}} else { - if (CFALSE == CTRUE) {return CTRUE - } else {return CFALSE}} + return CFALSE + } else if (self == CFALSE.Id()) { + return CTRUE + } else if (F_boolean_I_any(self).Id() != CTRUE.Id()) { + return CTRUE + } else { + return CFALSE + } } // The EID go function for: not @ any (throw: false) @@ -532,10 +527,10 @@ func E_not_any (self EID) EID { /* The go function for: !=(self:any,x:any) [status=0] */ func F__I_equal_any (self *ClaireAny ,x *ClaireAny ) *ClaireBoolean { if (Equal(self,x) == CTRUE) { - if (CFALSE == CTRUE) {return CTRUE - } else {return CFALSE}} else { - if (CTRUE == CTRUE) {return CTRUE - } else {return CFALSE}} + return CFALSE + } else { + return CTRUE + } } // The EID go function for: != @ any (throw: false) @@ -555,8 +550,8 @@ func E_owner_any (self EID) EID { // some useful methods /* The go function for: known?(self:any) [status=0] */ func F_known_ask_any (self *ClaireAny ) *ClaireBoolean { - if (CNULL != self) {return CTRUE - } else {return CFALSE}} + return F__I_equal_any(CNULL,self) + } // The EID go function for: known? @ any (throw: false) func E_known_ask_any (self EID) EID { @@ -564,8 +559,8 @@ func E_known_ask_any (self EID) EID { /* The go function for: unknown?(self:any) [status=0] */ func F_unknown_ask_any (self *ClaireAny ) *ClaireBoolean { - if (CNULL == self) {return CTRUE - } else {return CFALSE}} + return Equal(CNULL,self) + } // The EID go function for: unknown? @ any (throw: false) func E_unknown_ask_any (self EID) EID { @@ -1068,6 +1063,8 @@ func F_close_module (self *ClaireModule ) *ClaireModule { } } } + } else { + F_tformat_string(MakeString("---- note: ~S is a root module !\n"),3,MakeConstantList(self.Id())) } } self.Namespace() @@ -1313,10 +1310,6 @@ func F_self_print_symbol_Core (self *ClaireSymbol ) EID { self.Module_I().Name.Princ() PRINC("/") Result = F_print_any((self.String_I()).Id()) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - } return Result} // The EID go function for: self_print @ symbol (throw: true) @@ -1410,10 +1403,10 @@ func E_or_integer (x EID,y EID) EID { /* The go function for: <(self:integer,x:integer) [status=0] */ func F__inf_integer (self int,x int) *ClaireBoolean { if (self < x) { - if (CTRUE == CTRUE) {return CTRUE - } else {return CFALSE}} else { - if (CFALSE == CTRUE) {return CTRUE - } else {return CFALSE}} + return CTRUE + } else { + return CFALSE + } } // The EID go function for: < @ integer (throw: false) @@ -1423,10 +1416,10 @@ func E__inf_integer (self EID,x EID) EID { /* The go function for: <=(self:integer,x:integer) [status=0] */ func F__inf_equal_integer (self int,x int) *ClaireBoolean { if (self <= x) { - if (CTRUE == CTRUE) {return CTRUE - } else {return CFALSE}} else { - if (CFALSE == CTRUE) {return CTRUE - } else {return CFALSE}} + return CTRUE + } else { + return CFALSE + } } // The EID go function for: <= @ integer (throw: false) @@ -1436,10 +1429,10 @@ func E__inf_equal_integer (self EID,x EID) EID { /* The go function for: >(self:integer,x:integer) [status=0] */ func F__sup_integer (self int,x int) *ClaireBoolean { if (self > x) { - if (CTRUE == CTRUE) {return CTRUE - } else {return CFALSE}} else { - if (CFALSE == CTRUE) {return CTRUE - } else {return CFALSE}} + return CTRUE + } else { + return CFALSE + } } // The EID go function for: > @ integer (throw: false) @@ -1449,10 +1442,10 @@ func E__sup_integer (self EID,x EID) EID { /* The go function for: nth(self:integer,y:integer) [status=0] */ func F_nth_integer (self int,y int) *ClaireBoolean { if (BitVectorContains(self,y) == CTRUE) { - if (CTRUE == CTRUE) {return CTRUE - } else {return CFALSE}} else { - if (CFALSE == CTRUE) {return CTRUE - } else {return CFALSE}} + return CTRUE + } else { + return CFALSE + } } // The EID go function for: nth @ integer (throw: false) @@ -1679,10 +1672,7 @@ func F_printFDigit_float (x float64,i int) EID { Result = F_printFDigit_integer(arg_10,i) } } - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }} + } } } } @@ -2387,24 +2377,7 @@ func E_difference_set (self EID,x EID) EID { //---------------------- TYPE --------------------------------------------- //--------- ARRAY -------------------------------------------------------- -/* The go function for: nth=(self:array,x:integer,y:any) [status=1] */ -func F_nth_equal_array (self *ClaireList ,x int,y *ClaireAny ) EID { - // eid body s = void - var Result EID - if (ToList(self.Id()).Of().Contains(y) != CTRUE) { - Result = ToException(C_general_error.Make(MakeString("type mismatch for array update ~S, ~S").Id(),MakeConstantList(y,self.Id()).Id())).Close() - } else if ((x > 0) && - (x <= self.Length())) { - Result = self.NthPut(x,y).ToEID() - } else { - Result = ToException(C_general_error.Make(MakeString("nth[~S] out of scope for ~S").Id(),MakeConstantList(MakeInteger(x).Id(),self.Id()).Id())).Close() - } - return Result} - -// The EID go function for: nth= @ array (throw: true) -func E_nth_equal_array (self EID,x EID,y EID) EID { - return F_nth_equal_array(ToArray(OBJ(self)),INT(x),ANY(y) )} - +// /* The go function for: self_print(self:array) [status=1] */ func F_self_print_array_Core (self *ClaireList ) EID { // eid body s = void @@ -2439,8 +2412,8 @@ func E_self_print_char_Core (self EID) EID { /* The go function for: <=(c1:char,c2:char) [status=0] */ func F__inf_equal_char (c1 rune,c2 rune) *ClaireBoolean { - if (int(c1) <= int(c2)) {return CTRUE - } else {return CFALSE}} + return F__inf_equal_integer(int(c1),int(c2)) + } // The EID go function for: <= @ char (throw: false) func E__inf_equal_char (c1 EID,c2 EID) EID { @@ -2450,10 +2423,10 @@ func E__inf_equal_char (c1 EID,c2 EID) EID { /* The go function for: random(b:boolean) [status=0] */ func F_random_boolean (b *ClaireBoolean ) *ClaireBoolean { if (b == CTRUE) { - if (F_random_integer(10000) >= 5000) {return CTRUE - } else {return CFALSE}} else { - if (CFALSE == CTRUE) {return CTRUE - } else {return CFALSE}} + return F__sup_equal_integer(F_random_integer(10000),5000) + } else { + return CFALSE + } } // The EID go function for: random @ boolean (throw: false) diff --git a/src/Core/method.go b/src/Core/method.go index 9698505..6867a32 100644 --- a/src/Core/method.go +++ b/src/Core/method.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/meta/method.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:18 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:42 *****/ package Core import (_ "fmt" @@ -313,7 +313,7 @@ func F_inlineok_ask_method (self *ClaireMethod ,s *ClaireString ) *ClaireMethod func E_inlineok_ask_method (self EID,s EID) EID { return EID{F_inlineok_ask_method(ToMethod(OBJ(self)),ToString(OBJ(s)) ).Id(),0}} -// reads a lambda +// reads a lambda - may return an error /* The go function for: read_lambda(s:string) [status=1] */ func F_read_lambda_string (s *ClaireString ) EID { // eid body s = lambda diff --git a/src/Core/object.go b/src/Core/object.go index 052a3c9..d5b18f6 100644 --- a/src/Core/object.go +++ b/src/Core/object.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/meta/object.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:18 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:42 *****/ package Core import (_ "fmt" @@ -215,10 +215,7 @@ func F_push_debug_property (prop *ClaireProperty ,arity int,start int) EID { if !ErrorIn(Result) { PRINC("(") Result = F_CALL(C_print,ARGS(ClEnv.EvalStack[start])) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }} + } if !ErrorIn(Result) { { var j int = (start+1) Result= EID{CFALSE.Id(),0} @@ -231,8 +228,6 @@ func F_push_debug_property (prop *ClaireProperty ,arity int,start int) EID { if ErrorIn(loop_1) {Result = loop_1 break } else { - PRINC("") - loop_1 = EVOID } if ErrorIn(loop_1) {Result = loop_1 break @@ -586,12 +581,8 @@ func E_Core_db_unbind_module (m EID,p EID,v EID) EID { // finds if objects are identified - unclear if there is any need for this /* The go function for: identified?(self:class) [status=0] */ func F_identified_ask_class (self *ClaireClass ) *ClaireBoolean { - if ((self.Id() == C_integer.Id()) || - ((self.IsIn(C_object) == CTRUE) || - ((self.Id() == C_symbol.Id()) || - ((self.Id() == C_boolean.Id()) || - (self.Id() == C_char.Id()))))) {return CTRUE - } else {return CFALSE}} + return MakeBoolean((self.Id() == C_integer.Id()) || (self.IsIn(C_object) == CTRUE) || (self.Id() == C_symbol.Id()) || (self.Id() == C_boolean.Id()) || (self.Id() == C_char.Id())) + } // The EID go function for: identified? @ class (throw: false) func E_identified_ask_class (self EID) EID { @@ -600,8 +591,8 @@ func E_identified_ask_class (self EID) EID { // true pointer equality in go (used to be C++) => use externC form /* The go function for: identical?(x:any,y:any) [status=0] */ func F_identical_ask_any (x *ClaireAny ,y *ClaireAny ) *ClaireBoolean { - if (ToBoolean(IfThenElse(x == y,CTRUE.Id(),CFALSE.Id())) == CTRUE) {return CTRUE - } else {return CFALSE}} + return ToBoolean(IfThenElse(x == y,CTRUE.Id(),CFALSE.Id())) + } // The EID go function for: identical? @ any (throw: false) func E_identical_ask_any (x EID,y EID) EID { diff --git a/src/Core/types.go b/src/Core/types.go index e2e7aab..8aa9468 100644 --- a/src/Core/types.go +++ b/src/Core/types.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/meta/types.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:18 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:42 *****/ package Core import (_ "fmt" @@ -188,9 +188,8 @@ func E_enumerate_any (self EID) EID { // =type? is an operation (equality on types) /* The go function for: =type?(self:type,ens:type) [status=0] */ func F__equaltype_ask_any (self *ClaireType ,ens *ClaireType ) *ClaireBoolean { - if ((self.Included(ens) == CTRUE) && - (ens.Included(self) == CTRUE)) {return CTRUE - } else {return CFALSE}} + return MakeBoolean((self.Included(ens) == CTRUE) && (ens.Included(self) == CTRUE)) + } // The EID go function for: =type? @ type (throw: false) func E__equaltype_ask_any (self EID,ens EID) EID { @@ -218,10 +217,10 @@ func E_sort_I_type (x EID) EID { /* The go function for: %(self:any,ens:class) [status=0] */ func F__Z_any1 (self *ClaireAny ,ens *ClaireClass ) *ClaireBoolean { if (self.Isa.IsIn(ens) == CTRUE) { - if (CTRUE == CTRUE) {return CTRUE - } else {return CFALSE}} else { - if (CFALSE == CTRUE) {return CTRUE - } else {return CFALSE}} + return CTRUE + } else { + return CFALSE + } } // The EID go function for: % @ list(any, class) (throw: false) @@ -417,9 +416,8 @@ func E_self_print_Union_Core (self EID) EID { /* The go function for: finite?(self:Union) [status=0] */ func F_finite_ask_Union (self *ClaireUnion ) *ClaireBoolean { - if ((ToBoolean(OBJ(F_CALL(C_finite_ask,ARGS(EID{self.T1.Id(),0})))) == CTRUE) && - (ToBoolean(OBJ(F_CALL(C_finite_ask,ARGS(EID{self.T2.Id(),0})))) == CTRUE)) {return CTRUE - } else {return CFALSE}} + return MakeBoolean((ToBoolean(OBJ(F_CALL(C_finite_ask,ARGS(EID{self.T1.Id(),0})))) == CTRUE) && (ToBoolean(OBJ(F_CALL(C_finite_ask,ARGS(EID{self.T2.Id(),0})))) == CTRUE)) + } // The EID go function for: finite? @ Union (throw: false) func E_finite_ask_Union (self EID) EID { @@ -447,8 +445,8 @@ func E_self_print_Interval_Core (self EID) EID { /* The go function for: finite?(self:Interval) [status=0] */ func F_finite_ask_Interval (self *ClaireInterval ) *ClaireBoolean { - if (CTRUE == CTRUE) {return CTRUE - } else {return CFALSE}} + return CTRUE + } // The EID go function for: finite? @ Interval (throw: false) func E_finite_ask_Interval (self EID) EID { @@ -546,8 +544,8 @@ func E_self_print_Param_Core (self EID) EID { /* The go function for: finite?(self:Param) [status=0] */ func F_finite_ask_Param (self *ClaireParam ) *ClaireBoolean { - if (F_finite_ask_type(ToType(self.Arg.Id())) == CTRUE) {return CTRUE - } else {return CFALSE}} + return F_finite_ask_type(ToType(self.Arg.Id())) + } // The EID go function for: finite? @ Param (throw: false) func E_finite_ask_Param (self EID) EID { @@ -588,9 +586,8 @@ func E_self_print_subtype_Core (self EID) EID { // v3.2 /* The go function for: finite?(self:subtype) [status=0] */ func F_finite_ask_subtype (self *ClaireSubtype ) *ClaireBoolean { - if ((self.Arg.Id() == C_set.Id()) && - (ToBoolean(OBJ(F_CALL(C_finite_ask,ARGS(EID{self.T1.Id(),0})))) == CTRUE)) {return CTRUE - } else {return CFALSE}} + return MakeBoolean((self.Arg.Id() == C_set.Id()) && (ToBoolean(OBJ(F_CALL(C_finite_ask,ARGS(EID{self.T1.Id(),0})))) == CTRUE)) + } // The EID go function for: finite? @ subtype (throw: false) func E_finite_ask_subtype (self EID) EID { @@ -2027,8 +2024,8 @@ func E_Uall_list (l EID) EID { // v4 open coded (link to Included kernel method) /* The go function for: <=t(s:type,y:type) [status=0] */ func F__inf_equalt_type (s *ClaireType ,y *ClaireType ) *ClaireBoolean { - if (s.Included(y) == CTRUE) {return CTRUE - } else {return CFALSE}} + return s.Included(y) + } // The EID go function for: <=t @ type (throw: false) func E__inf_equalt_type (s EID,y EID) EID { @@ -2113,8 +2110,8 @@ func E__inf_equal_type_expression (x EID,y EID) EID { // v4 open coded (link to Contains kernel method) /* The go function for: %t(x:any,y:type) [status=0] */ func F_Core__Zt_any (x *ClaireAny ,y *ClaireType ) *ClaireBoolean { - if (y.Contains(x) == CTRUE) {return CTRUE - } else {return CFALSE}} + return y.Contains(x) + } // The EID go function for: %t @ any (throw: false) func E_Core__Zt_any (x EID,y EID) EID { @@ -2123,8 +2120,8 @@ func E_Core__Zt_any (x EID,y EID) EID { // extensibility for type_expression is through less?, that always returns a value (hence no error returned) /* The go function for: less?(x:type_expression,y:type_expression) [status=0] */ func F_less_ask_type_expression (x *ClaireTypeExpression ,y *ClaireTypeExpression ) *ClaireBoolean { - if (CFALSE == CTRUE) {return CTRUE - } else {return CFALSE}} + return CFALSE + } // The EID go function for: less? @ list(type_expression, type_expression) (throw: false) func E_less_ask_type_expression (x EID,y EID) EID { @@ -2559,33 +2556,7 @@ func E_nth_get_array_type (a EID,n EID) EID { return F_nth_get_array_type(ToType(OBJ(a)),ToType(OBJ(n)))} // managed by cross-compiler ? -/* The go function for: nth(self:array,x:integer) [status=1] */ -func F_nth_array (self *ClaireList ,x int) EID { - // eid body s = any - var Result EID - if ((x > 0) && - (x <= self.Length())) { - Result = ToList(self.Id()).At(x-1).ToEID() - } else { - Result = ToException(C_general_error.Make(MakeString("[180] nth[~S] out of scope for ~S").Id(),MakeConstantList(MakeInteger(x).Id(),self.Id()).Id())).Close() - } - return Result} - -// The EID go function for: nth @ array (throw: true) -func E_nth_array (self EID,x EID) EID { - return F_nth_array(ToArray(OBJ(self)),INT(x) )} - -/* The go function for: nth_array_type */ -func F_nth_array_type (self *ClaireType ,x *ClaireType ) EID { - var Result EID - Result = EID{F_member_type(self).Id(),0} - return Result} - - -// The dual EID go function for: "nth_array_type" -func E_nth_array_type (self EID,x EID) EID { - return F_nth_array_type(ToType(OBJ(self)),ToType(OBJ(x)))} - +// /* The go function for: make_array_integer_type */ func F_make_array_integer_type (i *ClaireType ,t *ClaireType ,v *ClaireType ) EID { var Result EID diff --git a/src/Generate/Generate-meta.go b/src/Generate/Generate-meta.go index f1e5cfa..38853fc 100644 --- a/src/Generate/Generate-meta.go +++ b/src/Generate/Generate-meta.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of module Generate.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:21 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:45 *****/ package Generate import (_ "fmt" @@ -12,7 +12,7 @@ import (_ "fmt" ) //-------- dumb function to prevent import errors -------- -func import_g0208() { +func import_g0209() { _ = Core.It _ = Language.It _ = Reader.It @@ -279,7 +279,7 @@ var It *ClaireModule func MetaLoad() { It = MakeModule("Generate",Optimize.C_Compile) - It.Comment = MakeString("Compiled on Saturday 01-01-2022 16:47:21(v4.0.04), lines:3537, warnings:2,safety:5") + It.Comment = MakeString("Compiled on Sunday 03-13-2022 07:28:45(v4.0.04), lines:3550, warnings:2,safety:5") ClEnv.Module_I = It // definition of the properties @@ -1141,49 +1141,49 @@ func MetaLoad() { _ = Core.F_attach_method(C_Generate_simple_body_ask.AddMethod(Signature(C_any.Id(),C_boolean.Id()),1,MakeFunction1(E_Generate_simple_body_ask_any,"Generate_simple_body?_any")),MakeString("gosystem.cl:654")) - _ = Core.F_attach_method(C_Generate_function_body.AddMethod(Signature(C_any.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_function_body_any,"Generate_function_body_any")),MakeString("gosystem.cl:663")) + _ = Core.F_attach_method(C_Generate_function_body.AddMethod(Signature(C_any.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_function_body_any,"Generate_function_body_any")),MakeString("gosystem.cl:669")) - _ = Core.F_attach_method(C_Generate_function_body.AddMethod(Signature(Language.C_If.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_function_body_If,"Generate_function_body_If")),MakeString("gosystem.cl:678")) + _ = Core.F_attach_method(C_Generate_function_body.AddMethod(Signature(Language.C_If.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_function_body_If,"Generate_function_body_If")),MakeString("gosystem.cl:684")) - _ = Core.F_attach_method(C_Generate_function_body.AddMethod(Signature(Language.C_Do.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_function_body_Do,"Generate_function_body_Do")),MakeString("gosystem.cl:687")) + _ = Core.F_attach_method(C_Generate_function_body.AddMethod(Signature(Language.C_Do.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_function_body_Do,"Generate_function_body_Do")),MakeString("gosystem.cl:693")) _ = Core.F_attach_method(C_Generate_procedure_body.AddMethod(Signature(C_method.Id(), C_lambda.Id(), C_any.Id(), C_class.Id(), - C_void.Id()),1,MakeFunction4(E_Generate_procedure_body_method,"Generate_procedure_body_method")),MakeString("gosystem.cl:697")) + C_void.Id()),1,MakeFunction4(E_Generate_procedure_body_method,"Generate_procedure_body_method")),MakeString("gosystem.cl:703")) _ = Core.F_attach_method(C_Generate_eid_body.AddMethod(Signature(C_any.Id(), C_boolean.Id(), C_class.Id(), - C_void.Id()),1,MakeFunction3(E_Generate_eid_body_any,"Generate_eid_body_any")),MakeString("gosystem.cl:703")) + C_void.Id()),1,MakeFunction3(E_Generate_eid_body_any,"Generate_eid_body_any")),MakeString("gosystem.cl:709")) _ = Core.F_attach_method(C_Generate_eid_body.AddMethod(Signature(C_method.Id(), C_any.Id(), C_boolean.Id(), C_class.Id(), - C_void.Id()),1,MakeFunction4(E_Generate_eid_body_method,"Generate_eid_body_method")),MakeString("gosystem.cl:714")) + C_void.Id()),1,MakeFunction4(E_Generate_eid_body_method,"Generate_eid_body_method")),MakeString("gosystem.cl:720")) _ = Core.F_attach_method(C_Generate_generate_eid_function.AddMethod(Signature(C_lambda.Id(), C_method.Id(), C_boolean.Id(), - C_void.Id()),1,MakeFunction3(E_Generate_generate_eid_function_lambda,"Generate_generate_eid_function_lambda")),MakeString("gosystem.cl:725")) + C_void.Id()),1,MakeFunction3(E_Generate_generate_eid_function_lambda,"Generate_generate_eid_function_lambda")),MakeString("gosystem.cl:731")) - _ = Core.F_attach_method(C_Generate_generate_eid_dual.AddMethod(Signature(C_lambda.Id(),C_string.Id(),C_void.Id()),1,MakeFunction2(E_Generate_generate_eid_dual_lambda,"Generate_generate_eid_dual_lambda")),MakeString("gosystem.cl:738")) + _ = Core.F_attach_method(C_Generate_generate_eid_dual.AddMethod(Signature(C_lambda.Id(),C_string.Id(),C_void.Id()),1,MakeFunction2(E_Generate_generate_eid_dual_lambda,"Generate_generate_eid_dual_lambda")),MakeString("gosystem.cl:744")) _ = Core.F_attach_method(C_Generate_print_EID_call.AddMethod(Signature(C_method.Id(), C_list.Id(), Core.F_param_I_class(C_list,ToType(C_class.Id())).Id(), C_boolean.Id(), - C_void.Id()),1,MakeFunction4(E_Generate_print_EID_call_method,"Generate_print_EID_call_method")),MakeString("gosystem.cl:761")) + C_void.Id()),1,MakeFunction4(E_Generate_print_EID_call_method,"Generate_print_EID_call_method")),MakeString("gosystem.cl:767")) _ = Core.F_attach_method(C_Generate_external_EID_arg.AddMethod(Signature(C_Variable.Id(), C_class.Id(), C_integer.Id(), C_boolean.Id(), - C_void.Id()),1,MakeFunction4(E_Generate_external_EID_arg_Variable,"Generate_external_EID_arg_Variable")),MakeString("gosystem.cl:770")) + C_void.Id()),1,MakeFunction4(E_Generate_external_EID_arg_Variable,"Generate_external_EID_arg_Variable")),MakeString("gosystem.cl:776")) - _ = Core.F_attach_method(C_Generate_goEIDVariables.AddMethod(Signature(C_Generate_go_producer.Id(),C_list.Id(),C_any.Id()),0,MakeFunction2(E_Generate_goEIDVariables_go_producer,"Generate_goEIDVariables_go_producer")),MakeString("gosystem.cl:777")) + _ = Core.F_attach_method(C_Generate_goEIDVariables.AddMethod(Signature(C_Generate_go_producer.Id(),C_list.Id(),C_any.Id()),0,MakeFunction2(E_Generate_goEIDVariables_go_producer,"Generate_goEIDVariables_go_producer")),MakeString("gosystem.cl:783")) { var expr EID @@ -1197,26 +1197,26 @@ func MetaLoad() { } ErrorCheck(expr)} - _ = Core.F_attach_method(C_Generate_check_range.AddMethod(Signature(C_method.Id(),C_any.Id(),C_any.Id()),1,MakeFunction2(E_Generate_check_range_method,"Generate_check_range_method")),MakeString("gosystem.cl:794")) + _ = Core.F_attach_method(C_Generate_check_range.AddMethod(Signature(C_method.Id(),C_any.Id(),C_any.Id()),1,MakeFunction2(E_Generate_check_range_method,"Generate_check_range_method")),MakeString("gosystem.cl:800")) - _ = Core.F_attach_method(C_Generate_generate_eval_function.AddMethod(Signature(C_lambda.Id(),C_method.Id(),C_void.Id()),1,MakeFunction2(E_Generate_generate_eval_function_lambda,"Generate_generate_eval_function_lambda")),MakeString("gosystem.cl:806")) + _ = Core.F_attach_method(C_Generate_generate_eval_function.AddMethod(Signature(C_lambda.Id(),C_method.Id(),C_void.Id()),1,MakeFunction2(E_Generate_generate_eval_function_lambda,"Generate_generate_eval_function_lambda")),MakeString("gosystem.cl:812")) - _ = Core.F_attach_method(C_Generate_need_debug_ask.AddMethod(Signature(C_any.Id(),C_boolean.Id()),0,MakeFunction1(E_Generate_need_debug_ask_any,"Generate_need_debug?_any")),MakeString("gosystem.cl:818")) + _ = Core.F_attach_method(C_Generate_need_debug_ask.AddMethod(Signature(C_any.Id(),C_boolean.Id()),0,MakeFunction1(E_Generate_need_debug_ask_any,"Generate_need_debug?_any")),MakeString("gosystem.cl:824")) _ = Core.F_attach_method(C_Generate_debug_intro.AddMethod(Signature(C_Generate_go_producer.Id(), C_lambda.Id(), C_method.Id(), - C_void.Id()),1,MakeFunction3(E_Generate_debug_intro_go_producer,"Generate_debug_intro_go_producer")),MakeString("gosystem.cl:834")) + C_void.Id()),1,MakeFunction3(E_Generate_debug_intro_go_producer,"Generate_debug_intro_go_producer")),MakeString("gosystem.cl:840")) _ = Core.F_attach_method(C_Generate_return_result.AddMethod(Signature(C_Generate_go_producer.Id(), C_class.Id(), C_method.Id(), C_string.Id(), - C_void.Id()),1,MakeFunction4(E_Generate_return_result_go_producer,"Generate_return_result_go_producer")),MakeString("gosystem.cl:847")) + C_void.Id()),1,MakeFunction4(E_Generate_return_result_go_producer,"Generate_return_result_go_producer")),MakeString("gosystem.cl:853")) - _ = Core.F_attach_method(C_c_princ.AddMethod(Signature(C_function.Id(),C_void.Id()),0,MakeFunction1(E_c_princ_function,"c_princ_function")),MakeString("gosystem.cl:852")) + _ = Core.F_attach_method(C_c_princ.AddMethod(Signature(C_function.Id(),C_void.Id()),0,MakeFunction1(E_c_princ_function,"c_princ_function")),MakeString("gosystem.cl:858")) - _ = Core.F_attach_method(C_Generate_import_princ.AddMethod(Signature(C_string.Id(),C_void.Id()),0,MakeFunction1(E_Generate_import_princ_string,"Generate_import_princ_string")),MakeString("gosystem.cl:855")) + _ = Core.F_attach_method(C_Generate_import_princ.AddMethod(Signature(C_string.Id(),C_void.Id()),0,MakeFunction1(E_Generate_import_princ_string,"Generate_import_princ_string")),MakeString("gosystem.cl:861")) _ = Core.F_attach_method(C_Generate_new_block.AddMethod(Signature(C_string.Id(),C_void.Id()),0,MakeFunction1(E_Generate_new_block_string,"Generate_new_block_string")),MakeString("gogen.cl:25")) @@ -1328,7 +1328,9 @@ func MetaLoad() { MakeString("string").Id(), C_float.Id(), MakeString("float64 ").Id()) - C_Generate_GO_PRODUCER.KernelMethods = MakeList(ToType(C_any.Id()),Core.F__at_property1(ToProperty(Core.C__at.Id()),C_type).Id(), + C_Generate_GO_PRODUCER.KernelMethods = MakeList(ToType(C_any.Id()),Core.F__at_property1(C_nth,C_list).Id(), + Core.F__at_property1(C_nth,C_tuple).Id(), + Core.F__at_property1(ToProperty(Core.C__at.Id()),C_type).Id(), MakeString("At").Id(), Core.F__at_property1(C_array_I,C_list).Id(), Core.F__at_property1(C_list_I,C_set).Id(), @@ -1343,82 +1345,82 @@ func MetaLoad() { Optimize.C_PRODUCER.Value = C_Generate_GO_PRODUCER.Id() - _ = Core.F_attach_method(C_Generate_c_string.AddMethod(Signature(C_Generate_go_producer.Id(),C_Variable.Id(),C_string.Id()),1,MakeFunction2(E_Generate_c_string_go_producer1,"Generate_c_string_go_producer1")),MakeString("gogen.cl:89")) + _ = Core.F_attach_method(C_Generate_c_string.AddMethod(Signature(C_Generate_go_producer.Id(),C_Variable.Id(),C_string.Id()),1,MakeFunction2(E_Generate_c_string_go_producer1,"Generate_c_string_go_producer1")),MakeString("gogen.cl:90")) - _ = Core.F_attach_method(C_Generate_c_string.AddMethod(Signature(C_Generate_go_producer.Id(),C_symbol.Id(),C_string.Id()),1,MakeFunction2(E_Generate_c_string_go_producer2,"Generate_c_string_go_producer2")),MakeString("gogen.cl:92")) + _ = Core.F_attach_method(C_Generate_c_string.AddMethod(Signature(C_Generate_go_producer.Id(),C_symbol.Id(),C_string.Id()),1,MakeFunction2(E_Generate_c_string_go_producer2,"Generate_c_string_go_producer2")),MakeString("gogen.cl:93")) - _ = Core.F_attach_method(Language.C_iClaire_ident.AddMethod(Signature(C_Generate_go_producer.Id(),C_Variable.Id(),C_void.Id()),0,MakeFunction2(E_iClaire_ident_go_producer1,"iClaire_ident_go_producer1")),MakeString("gogen.cl:100")) + _ = Core.F_attach_method(Language.C_iClaire_ident.AddMethod(Signature(C_Generate_go_producer.Id(),C_Variable.Id(),C_void.Id()),0,MakeFunction2(E_iClaire_ident_go_producer1,"iClaire_ident_go_producer1")),MakeString("gogen.cl:101")) - _ = Core.F_attach_method(Language.C_iClaire_ident.AddMethod(Signature(C_Generate_go_producer.Id(),C_symbol.Id(),C_void.Id()),0,MakeFunction2(E_iClaire_ident_go_producer2,"iClaire_ident_go_producer2")),MakeString("gogen.cl:107")) + _ = Core.F_attach_method(Language.C_iClaire_ident.AddMethod(Signature(C_Generate_go_producer.Id(),C_symbol.Id(),C_void.Id()),0,MakeFunction2(E_iClaire_ident_go_producer2,"iClaire_ident_go_producer2")),MakeString("gogen.cl:108")) - _ = Core.F_attach_method(C_Generate_cap_ident.AddMethod(Signature(C_symbol.Id(),C_void.Id()),0,MakeFunction1(E_Generate_cap_ident_symbol,"Generate_cap_ident_symbol")),MakeString("gogen.cl:113")) + _ = Core.F_attach_method(C_Generate_cap_ident.AddMethod(Signature(C_symbol.Id(),C_void.Id()),0,MakeFunction1(E_Generate_cap_ident_symbol,"Generate_cap_ident_symbol")),MakeString("gogen.cl:114")) - _ = Core.F_attach_method(C_Generate_capitalized_ident.AddMethod(Signature(C_symbol.Id(),C_module.Id(),C_void.Id()),0,MakeFunction2(E_Generate_capitalized_ident_symbol,"Generate_capitalized_ident_symbol")),MakeString("gogen.cl:123")) + _ = Core.F_attach_method(C_Generate_capitalized_ident.AddMethod(Signature(C_symbol.Id(),C_module.Id(),C_void.Id()),0,MakeFunction2(E_Generate_capitalized_ident_symbol,"Generate_capitalized_ident_symbol")),MakeString("gogen.cl:124")) - _ = Core.F_attach_method(C_Generate_cap_short.AddMethod(Signature(C_symbol.Id(),C_void.Id()),0,MakeFunction1(E_Generate_cap_short_symbol,"Generate_cap_short_symbol")),MakeString("gogen.cl:127")) + _ = Core.F_attach_method(C_Generate_cap_short.AddMethod(Signature(C_symbol.Id(),C_void.Id()),0,MakeFunction1(E_Generate_cap_short_symbol,"Generate_cap_short_symbol")),MakeString("gogen.cl:128")) - _ = Core.F_attach_method(C_Generate_go_class.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_go_class_class,"Generate_go_class_class")),MakeString("gogen.cl:138")) + _ = Core.F_attach_method(C_Generate_go_class.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_go_class_class,"Generate_go_class_class")),MakeString("gogen.cl:139")) - _ = Core.F_attach_method(C_Generate_cast_class.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_cast_class_class,"Generate_cast_class_class")),MakeString("gogen.cl:148")) + _ = Core.F_attach_method(C_Generate_cast_class.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_cast_class_class,"Generate_cast_class_class")),MakeString("gogen.cl:149")) - _ = Core.F_attach_method(C_Generate_class_ident.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_class_ident_class,"Generate_class_ident_class")),MakeString("gogen.cl:152")) + _ = Core.F_attach_method(C_Generate_class_ident.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_class_ident_class,"Generate_class_ident_class")),MakeString("gogen.cl:153")) - _ = Core.F_attach_method(C_Generate_thing_ident.AddMethod(Signature(C_thing.Id(),C_void.Id()),0,MakeFunction1(E_Generate_thing_ident_thing,"Generate_thing_ident_thing")),MakeString("gogen.cl:156")) + _ = Core.F_attach_method(C_Generate_thing_ident.AddMethod(Signature(C_thing.Id(),C_void.Id()),0,MakeFunction1(E_Generate_thing_ident_thing,"Generate_thing_ident_thing")),MakeString("gogen.cl:157")) - _ = Core.F_attach_method(C_Generate_symbol_ident.AddMethod(Signature(C_symbol.Id(),C_void.Id()),0,MakeFunction1(E_Generate_symbol_ident_symbol,"Generate_symbol_ident_symbol")),MakeString("gogen.cl:163")) + _ = Core.F_attach_method(C_Generate_symbol_ident.AddMethod(Signature(C_symbol.Id(),C_void.Id()),0,MakeFunction1(E_Generate_symbol_ident_symbol,"Generate_symbol_ident_symbol")),MakeString("gogen.cl:164")) - _ = Core.F_attach_method(C_Generate_go_var.AddMethod(Signature(C_symbol.Id(),C_void.Id()),0,MakeFunction1(E_Generate_go_var_symbol,"Generate_go_var_symbol")),MakeString("gogen.cl:171")) + _ = Core.F_attach_method(C_Generate_go_var.AddMethod(Signature(C_symbol.Id(),C_void.Id()),0,MakeFunction1(E_Generate_go_var_symbol,"Generate_go_var_symbol")),MakeString("gogen.cl:172")) - _ = Core.F_attach_method(C_Generate_add_underscore.AddMethod(Signature(C_symbol.Id(),C_void.Id()),0,MakeFunction1(E_Generate_add_underscore_symbol,"Generate_add_underscore_symbol")),MakeString("gogen.cl:177")) + _ = Core.F_attach_method(C_Generate_add_underscore.AddMethod(Signature(C_symbol.Id(),C_void.Id()),0,MakeFunction1(E_Generate_add_underscore_symbol,"Generate_add_underscore_symbol")),MakeString("gogen.cl:178")) - _ = Core.F_attach_method(C_Generate_capitalize.AddMethod(Signature(C_string.Id(),C_string.Id()),0,MakeFunction1(E_Generate_capitalize_string,"Generate_capitalize_string")),MakeString("gogen.cl:188")) + _ = Core.F_attach_method(C_Generate_capitalize.AddMethod(Signature(C_string.Id(),C_string.Id()),0,MakeFunction1(E_Generate_capitalize_string,"Generate_capitalize_string")),MakeString("gogen.cl:189")) - _ = Core.F_attach_method(C_Generate_capitalize.AddMethod(Signature(C_char.Id(),C_char.Id()),0,MakeFunction1(E_Generate_capitalize_char,"Generate_capitalize_char")),MakeString("gogen.cl:192")) + _ = Core.F_attach_method(C_Generate_capitalize.AddMethod(Signature(C_char.Id(),C_char.Id()),0,MakeFunction1(E_Generate_capitalize_char,"Generate_capitalize_char")),MakeString("gogen.cl:193")) - _ = Core.F_attach_method(C_Generate_capitalize.AddMethod(Signature(C_symbol.Id(),C_string.Id()),0,MakeFunction1(E_Generate_capitalize_symbol,"Generate_capitalize_symbol")),MakeString("gogen.cl:194")) + _ = Core.F_attach_method(C_Generate_capitalize.AddMethod(Signature(C_symbol.Id(),C_string.Id()),0,MakeFunction1(E_Generate_capitalize_symbol,"Generate_capitalize_symbol")),MakeString("gogen.cl:195")) - _ = Core.F_attach_method(C_Generate_globalVar.AddMethod(Signature(C_Generate_go_producer.Id(),Core.C_global_variable.Id(),C_void.Id()),0,MakeFunction2(E_Generate_globalVar_go_producer,"Generate_globalVar_go_producer")),MakeString("gogen.cl:201")) + _ = Core.F_attach_method(C_Generate_globalVar.AddMethod(Signature(C_Generate_go_producer.Id(),Core.C_global_variable.Id(),C_void.Id()),0,MakeFunction2(E_Generate_globalVar_go_producer,"Generate_globalVar_go_producer")),MakeString("gogen.cl:202")) - _ = Core.F_attach_method(C_Generate_type_sort.AddMethod(Signature(C_type.Id(),C_class.Id()),0,MakeFunction1(E_Generate_type_sort_type,"Generate_type_sort_type")),MakeString("gogen.cl:213")) + _ = Core.F_attach_method(C_Generate_type_sort.AddMethod(Signature(C_type.Id(),C_class.Id()),0,MakeFunction1(E_Generate_type_sort_type,"Generate_type_sort_type")),MakeString("gogen.cl:214")) - _ = Core.F_attach_method(C_Generate_g_sort.AddMethod(Signature(C_any.Id(),C_class.Id()),1,MakeFunction1(E_Generate_g_sort_any,"Generate_g_sort_any")),MakeString("gogen.cl:217")) + _ = Core.F_attach_method(C_Generate_g_sort.AddMethod(Signature(C_any.Id(),C_class.Id()),1,MakeFunction1(E_Generate_g_sort_any,"Generate_g_sort_any")),MakeString("gogen.cl:218")) - _ = Core.F_attach_method(C_Generate_valuesSlot.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_valuesSlot_class,"Generate_valuesSlot_class")),MakeString("gogen.cl:221")) + _ = Core.F_attach_method(C_Generate_valuesSlot.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_valuesSlot_class,"Generate_valuesSlot_class")),MakeString("gogen.cl:222")) - _ = Core.F_attach_method(C_Generate_namespace_I.AddMethod(Signature(C_Generate_go_producer.Id(),C_module.Id(),C_void.Id()),0,MakeFunction2(E_Generate_namespace_I_go_producer,"Generate_namespace!_go_producer")),MakeString("gogen.cl:233")) + _ = Core.F_attach_method(C_Generate_namespace_I.AddMethod(Signature(C_Generate_go_producer.Id(),C_module.Id(),C_void.Id()),0,MakeFunction2(E_Generate_namespace_I_go_producer,"Generate_namespace!_go_producer")),MakeString("gogen.cl:234")) _ = Core.F_attach_method(C_Generate_var_declaration.AddMethod(Signature(C_string.Id(), C_class.Id(), C_integer.Id(), - C_void.Id()),0,MakeFunction3(E_Generate_var_declaration_string,"Generate_var_declaration_string")),MakeString("gogen.cl:244")) + C_void.Id()),0,MakeFunction3(E_Generate_var_declaration_string,"Generate_var_declaration_string")),MakeString("gogen.cl:245")) - _ = Core.F_attach_method(C_imported_function_ask.AddMethod(Signature(C_any.Id(),C_boolean.Id()),0,MakeFunction1(E_imported_function_ask_any,"imported_function?_any")),MakeString("gogen.cl:248")) + _ = Core.F_attach_method(C_imported_function_ask.AddMethod(Signature(C_any.Id(),C_boolean.Id()),0,MakeFunction1(E_imported_function_ask_any,"imported_function?_any")),MakeString("gogen.cl:249")) - _ = Core.F_attach_method(C_Generate_goMethod_ask.AddMethod(Signature(C_any.Id(),C_boolean.Id()),0,MakeFunction1(E_Generate_goMethod_ask_any,"Generate_goMethod?_any")),MakeString("gogen.cl:274")) + _ = Core.F_attach_method(C_Generate_goMethod_ask.AddMethod(Signature(C_any.Id(),C_boolean.Id()),0,MakeFunction1(E_Generate_goMethod_ask_any,"Generate_goMethod?_any")),MakeString("gogen.cl:275")) - _ = Core.F_attach_method(C_dMethod_ask.AddMethod(Signature(C_any.Id(),C_void.Id()),1,MakeFunction1(E_dMethod_ask_any,"dMethod?_any")),MakeString("gogen.cl:291")) + _ = Core.F_attach_method(C_dMethod_ask.AddMethod(Signature(C_any.Id(),C_void.Id()),1,MakeFunction1(E_dMethod_ask_any,"dMethod?_any")),MakeString("gogen.cl:292")) - _ = Core.F_attach_method(C_Generate_arg_match.AddMethod(Signature(Core.F_param_I_class(C_list,ToType(C_class.Id())).Id(),Core.F_param_I_class(C_list,ToType(C_class.Id())).Id(),C_boolean.Id()),0,MakeFunction2(E_Generate_arg_match_list,"Generate_arg_match_list")),MakeString("gogen.cl:297")) + _ = Core.F_attach_method(C_Generate_arg_match.AddMethod(Signature(Core.F_param_I_class(C_list,ToType(C_class.Id())).Id(),Core.F_param_I_class(C_list,ToType(C_class.Id())).Id(),C_boolean.Id()),0,MakeFunction2(E_Generate_arg_match_list,"Generate_arg_match_list")),MakeString("gogen.cl:298")) - _ = Core.F_attach_method(Optimize.C_Compile_function_name.AddMethod(Signature(C_property.Id(),C_list.Id(),C_string.Id()),0,MakeFunction2(E_Compile_function_name_property2,"Compile_function_name_property2")),MakeString("gogen.cl:311")) + _ = Core.F_attach_method(Optimize.C_Compile_function_name.AddMethod(Signature(C_property.Id(),C_list.Id(),C_string.Id()),0,MakeFunction2(E_Compile_function_name_property2,"Compile_function_name_property2")),MakeString("gogen.cl:312")) - _ = Core.F_attach_method(C_Generate_at.AddMethod(Signature(C_Generate_go_producer.Id(),C_void.Id()),0,MakeFunction1(E_Generate_at_go_producer,"Generate_at_go_producer")),MakeString("gogen.cl:315")) + _ = Core.F_attach_method(C_Generate_at.AddMethod(Signature(C_Generate_go_producer.Id(),C_void.Id()),0,MakeFunction1(E_Generate_at_go_producer,"Generate_at_go_producer")),MakeString("gogen.cl:316")) - _ = Core.F_attach_method(C_Generate_goVariables.AddMethod(Signature(C_Generate_go_producer.Id(),C_list.Id(),C_any.Id()),0,MakeFunction2(E_Generate_goVariables_go_producer,"Generate_goVariables_go_producer")),MakeString("gogen.cl:322")) + _ = Core.F_attach_method(C_Generate_goVariables.AddMethod(Signature(C_Generate_go_producer.Id(),C_list.Id(),C_any.Id()),0,MakeFunction2(E_Generate_goVariables_go_producer,"Generate_goVariables_go_producer")),MakeString("gogen.cl:323")) - _ = Core.F_attach_method(C_Generate_goVariable.AddMethod(Signature(C_Generate_go_producer.Id(),C_Variable.Id(),C_void.Id()),0,MakeFunction2(E_Generate_goVariable_go_producer,"Generate_goVariable_go_producer")),MakeString("gogen.cl:326")) + _ = Core.F_attach_method(C_Generate_goVariable.AddMethod(Signature(C_Generate_go_producer.Id(),C_Variable.Id(),C_void.Id()),0,MakeFunction2(E_Generate_goVariable_go_producer,"Generate_goVariable_go_producer")),MakeString("gogen.cl:327")) - _ = Core.F_attach_method(C_Generate_goMethod.AddMethod(Signature(C_method.Id(),C_void.Id()),0,MakeFunction1(E_Generate_goMethod_method,"Generate_goMethod_method")),MakeString("gogen.cl:335")) + _ = Core.F_attach_method(C_Generate_goMethod.AddMethod(Signature(C_method.Id(),C_void.Id()),0,MakeFunction1(E_Generate_goMethod_method,"Generate_goMethod_method")),MakeString("gogen.cl:336")) - _ = Core.F_attach_method(C_Generate_goFunction.AddMethod(Signature(C_method.Id(),C_void.Id()),1,MakeFunction1(E_Generate_goFunction_method,"Generate_goFunction_method")),MakeString("gogen.cl:346")) + _ = Core.F_attach_method(C_Generate_goFunction.AddMethod(Signature(C_method.Id(),C_void.Id()),1,MakeFunction1(E_Generate_goFunction_method,"Generate_goFunction_method")),MakeString("gogen.cl:347")) - _ = Core.F_attach_method(C_Generate_preCore_ask.AddMethod(Signature(C_void.Id(),C_void.Id()),0,MakeFunction1(E_Generate_preCore_ask_void,"Generate_preCore?_void")),MakeString("gogen.cl:351")) + _ = Core.F_attach_method(C_Generate_preCore_ask.AddMethod(Signature(C_void.Id(),C_void.Id()),0,MakeFunction1(E_Generate_preCore_ask_void,"Generate_preCore?_void")),MakeString("gogen.cl:352")) - _ = Core.F_attach_method(C_Generate_goEIDFunction.AddMethod(Signature(C_method.Id(),C_void.Id()),1,MakeFunction1(E_Generate_goEIDFunction_method,"Generate_goEIDFunction_method")),MakeString("gogen.cl:357")) + _ = Core.F_attach_method(C_Generate_goEIDFunction.AddMethod(Signature(C_method.Id(),C_void.Id()),1,MakeFunction1(E_Generate_goEIDFunction_method,"Generate_goEIDFunction_method")),MakeString("gogen.cl:358")) - _ = Core.F_attach_method(C_Generate_goEIDFunctionName.AddMethod(Signature(C_method.Id(),C_void.Id()),1,MakeFunction1(E_Generate_goEIDFunctionName_method,"Generate_goEIDFunctionName_method")),MakeString("gogen.cl:362")) + _ = Core.F_attach_method(C_Generate_goEIDFunctionName.AddMethod(Signature(C_method.Id(),C_void.Id()),1,MakeFunction1(E_Generate_goEIDFunctionName_method,"Generate_goEIDFunctionName_method")),MakeString("gogen.cl:363")) - _ = Core.F_attach_method(C_Generate_goEvalFunction.AddMethod(Signature(C_method.Id(),C_void.Id()),0,MakeFunction1(E_Generate_goEvalFunction_method,"Generate_goEvalFunction_method")),MakeString("gogen.cl:369")) + _ = Core.F_attach_method(C_Generate_goEvalFunction.AddMethod(Signature(C_method.Id(),C_void.Id()),0,MakeFunction1(E_Generate_goEvalFunction_method,"Generate_goEvalFunction_method")),MakeString("gogen.cl:370")) { var expr EID @@ -1444,100 +1446,100 @@ func MetaLoad() { } ErrorCheck(expr)} - _ = Core.F_attach_method(C_Generate_getFunctionName.AddMethod(Signature(C_method.Id(),C_string.Id()),1,MakeFunction1(E_Generate_getFunctionName_method,"Generate_getFunctionName_method")),MakeString("gogen.cl:384")) + _ = Core.F_attach_method(C_Generate_getFunctionName.AddMethod(Signature(C_method.Id(),C_string.Id()),1,MakeFunction1(E_Generate_getFunctionName_method,"Generate_getFunctionName_method")),MakeString("gogen.cl:385")) - _ = Core.F_attach_method(C_Generate_retreive_method.AddMethod(Signature(C_any.Id(),C_any.Id(),C_method.Id()),1,MakeFunction2(E_Generate_retreive_method_any,"Generate_retreive_method_any")),MakeString("gogen.cl:393")) + _ = Core.F_attach_method(C_Generate_retreive_method.AddMethod(Signature(C_any.Id(),C_any.Id(),C_method.Id()),1,MakeFunction2(E_Generate_retreive_method_any,"Generate_retreive_method_any")),MakeString("gogen.cl:394")) - _ = Core.F_attach_method(C_Generate_retreive_list.AddMethod(Signature(C_any.Id(),C_any.Id()),1,MakeFunction1(E_Generate_retreive_list_any,"Generate_retreive_list_any")),MakeString("gogen.cl:418")) + _ = Core.F_attach_method(C_Generate_retreive_list.AddMethod(Signature(C_any.Id(),C_any.Id()),1,MakeFunction1(E_Generate_retreive_list_any,"Generate_retreive_list_any")),MakeString("gogen.cl:419")) - _ = Core.F_attach_method(C_Generate_interface_I.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_interface_I_class,"Generate_interface!_class")),MakeString("gogen.cl:434")) + _ = Core.F_attach_method(C_Generate_interface_I.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_interface_I_class,"Generate_interface!_class")),MakeString("gogen.cl:435")) _ = Core.F_attach_method(C_Generate_to_cl.AddMethod(Signature(C_Generate_go_producer.Id(), C_any.Id(), C_class.Id(), - C_void.Id()),1,MakeFunction3(E_Generate_to_cl_go_producer,"Generate_to_cl_go_producer")),MakeString("gogen.cl:445")) + C_void.Id()),1,MakeFunction3(E_Generate_to_cl_go_producer,"Generate_to_cl_go_producer")),MakeString("gogen.cl:446")) _ = Core.F_attach_method(C_Generate_to_eid.AddMethod(Signature(C_Generate_go_producer.Id(), C_any.Id(), C_class.Id(), - C_void.Id()),1,MakeFunction3(E_Generate_to_eid_go_producer,"Generate_to_eid_go_producer")),MakeString("gogen.cl:465")) + C_void.Id()),1,MakeFunction3(E_Generate_to_eid_go_producer,"Generate_to_eid_go_producer")),MakeString("gogen.cl:466")) _ = Core.F_attach_method(C_Generate_from_eid.AddMethod(Signature(C_Generate_go_producer.Id(), C_string.Id(), C_class.Id(), - C_void.Id()),1,MakeFunction3(E_Generate_from_eid_go_producer,"Generate_from_eid_go_producer")),MakeString("gogen.cl:472")) + C_void.Id()),1,MakeFunction3(E_Generate_from_eid_go_producer,"Generate_from_eid_go_producer")),MakeString("gogen.cl:473")) - _ = Core.F_attach_method(C_Generate_eid_prefix.AddMethod(Signature(C_class.Id(),C_void.Id()),1,MakeFunction1(E_Generate_eid_prefix_class,"Generate_eid_prefix_class")),MakeString("gogen.cl:483")) + _ = Core.F_attach_method(C_Generate_eid_prefix.AddMethod(Signature(C_class.Id(),C_void.Id()),1,MakeFunction1(E_Generate_eid_prefix_class,"Generate_eid_prefix_class")),MakeString("gogen.cl:484")) - _ = Core.F_attach_method(C_Generate_eid_post.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_eid_post_class,"Generate_eid_post_class")),MakeString("gogen.cl:489")) + _ = Core.F_attach_method(C_Generate_eid_post.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_eid_post_class,"Generate_eid_post_class")),MakeString("gogen.cl:490")) - _ = Core.F_attach_method(C_Generate_integer_prefix.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_integer_prefix_class,"Generate_integer_prefix_class")),MakeString("gogen.cl:494")) + _ = Core.F_attach_method(C_Generate_integer_prefix.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_integer_prefix_class,"Generate_integer_prefix_class")),MakeString("gogen.cl:495")) - _ = Core.F_attach_method(C_Generate_float_prefix.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_float_prefix_class,"Generate_float_prefix_class")),MakeString("gogen.cl:499")) + _ = Core.F_attach_method(C_Generate_float_prefix.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_float_prefix_class,"Generate_float_prefix_class")),MakeString("gogen.cl:500")) - _ = Core.F_attach_method(C_Generate_char_prefix.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_char_prefix_class,"Generate_char_prefix_class")),MakeString("gogen.cl:504")) + _ = Core.F_attach_method(C_Generate_char_prefix.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_char_prefix_class,"Generate_char_prefix_class")),MakeString("gogen.cl:505")) - _ = Core.F_attach_method(C_Generate_string_prefix.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_string_prefix_class,"Generate_string_prefix_class")),MakeString("gogen.cl:509")) + _ = Core.F_attach_method(C_Generate_string_prefix.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_string_prefix_class,"Generate_string_prefix_class")),MakeString("gogen.cl:510")) - _ = Core.F_attach_method(C_Generate_string_post.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_string_post_class,"Generate_string_post_class")),MakeString("gogen.cl:513")) + _ = Core.F_attach_method(C_Generate_string_post.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_string_post_class,"Generate_string_post_class")),MakeString("gogen.cl:514")) - _ = Core.F_attach_method(C_Generate_native_post.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_native_post_class,"Generate_native_post_class")),MakeString("gogen.cl:518")) + _ = Core.F_attach_method(C_Generate_native_post.AddMethod(Signature(C_class.Id(),C_void.Id()),0,MakeFunction1(E_Generate_native_post_class,"Generate_native_post_class")),MakeString("gogen.cl:519")) - _ = Core.F_attach_method(C_Generate_object_prefix.AddMethod(Signature(C_class.Id(),C_class.Id(),C_void.Id()),0,MakeFunction2(E_Generate_object_prefix_class,"Generate_object_prefix_class")),MakeString("gogen.cl:527")) + _ = Core.F_attach_method(C_Generate_object_prefix.AddMethod(Signature(C_class.Id(),C_class.Id(),C_void.Id()),0,MakeFunction2(E_Generate_object_prefix_class,"Generate_object_prefix_class")),MakeString("gogen.cl:528")) - _ = Core.F_attach_method(C_Generate_object_post.AddMethod(Signature(C_class.Id(),C_class.Id(),C_void.Id()),0,MakeFunction2(E_Generate_object_post_class,"Generate_object_post_class")),MakeString("gogen.cl:540")) + _ = Core.F_attach_method(C_Generate_object_post.AddMethod(Signature(C_class.Id(),C_class.Id(),C_void.Id()),0,MakeFunction2(E_Generate_object_post_class,"Generate_object_post_class")),MakeString("gogen.cl:541")) - _ = Core.F_attach_method(C_Generate_cast_prefix.AddMethod(Signature(C_class.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_cast_prefix_class,"Generate_cast_prefix_class")),MakeString("gogen.cl:550")) + _ = Core.F_attach_method(C_Generate_cast_prefix.AddMethod(Signature(C_class.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_cast_prefix_class,"Generate_cast_prefix_class")),MakeString("gogen.cl:551")) - _ = Core.F_attach_method(C_Generate_cast_post.AddMethod(Signature(C_class.Id(),C_class.Id(),C_void.Id()),0,MakeFunction2(E_Generate_cast_post_class,"Generate_cast_post_class")),MakeString("gogen.cl:559")) + _ = Core.F_attach_method(C_Generate_cast_post.AddMethod(Signature(C_class.Id(),C_class.Id(),C_void.Id()),0,MakeFunction2(E_Generate_cast_post_class,"Generate_cast_post_class")),MakeString("gogen.cl:560")) _ = Core.F_attach_method(C_Generate_equal_exp.AddMethod(Signature(C_Generate_go_producer.Id(), C_any.Id(), C_boolean.Id(), C_any.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_equal_exp_go_producer,"Generate_equal_exp_go_producer")),MakeString("gogen.cl:588")) + C_void.Id()),1,MakeFunction5(E_Generate_equal_exp_go_producer,"Generate_equal_exp_go_producer")),MakeString("gogen.cl:589")) - _ = Core.F_attach_method(C_Generate_char_exp_ask.AddMethod(Signature(C_Generate_go_producer.Id(),C_any.Id(),C_boolean.Id()),0,MakeFunction2(E_Generate_char_exp_ask_go_producer,"Generate_char_exp?_go_producer")),MakeString("gogen.cl:597")) + _ = Core.F_attach_method(C_Generate_char_exp_ask.AddMethod(Signature(C_Generate_go_producer.Id(),C_any.Id(),C_boolean.Id()),0,MakeFunction2(E_Generate_char_exp_ask_go_producer,"Generate_char_exp?_go_producer")),MakeString("gogen.cl:598")) _ = Core.F_attach_method(C_Generate_c_member.AddMethod(Signature(C_Generate_go_producer.Id(), C_any.Id(), C_class.Id(), C_property.Id(), - C_void.Id()),1,MakeFunction4(E_Generate_c_member_go_producer,"Generate_c_member_go_producer")),MakeString("gogen.cl:601")) + C_void.Id()),1,MakeFunction4(E_Generate_c_member_go_producer,"Generate_c_member_go_producer")),MakeString("gogen.cl:602")) _ = Core.F_attach_method(C_Generate_bag_expression.AddMethod(Signature(C_Generate_go_producer.Id(), C_class.Id(), C_list.Id(), C_type.Id(), - C_void.Id()),1,MakeFunction4(E_Generate_bag_expression_go_producer,"Generate_bag_expression_go_producer")),MakeString("gogen.cl:613")) + C_void.Id()),1,MakeFunction4(E_Generate_bag_expression_go_producer,"Generate_bag_expression_go_producer")),MakeString("gogen.cl:614")) - _ = Core.F_attach_method(C_Generate_constant_ask.AddMethod(Signature(C_any.Id(),C_boolean.Id()),0,MakeFunction1(E_Generate_constant_ask_any,"Generate_constant?_any")),MakeString("gogen.cl:625")) + _ = Core.F_attach_method(C_Generate_constant_ask.AddMethod(Signature(C_any.Id(),C_boolean.Id()),0,MakeFunction1(E_Generate_constant_ask_any,"Generate_constant?_any")),MakeString("gogen.cl:626")) - _ = Core.F_attach_method(C_Generate_go_range.AddMethod(Signature(C_Variable.Id(),C_class.Id()),0,MakeFunction1(E_Generate_go_range_Variable,"Generate_go_range_Variable")),MakeString("gogen.cl:629")) + _ = Core.F_attach_method(C_Generate_go_range.AddMethod(Signature(C_Variable.Id(),C_class.Id()),0,MakeFunction1(E_Generate_go_range_Variable,"Generate_go_range_Variable")),MakeString("gogen.cl:630")) - _ = Core.F_attach_method(C_Generate_go_signature.AddMethod(Signature(C_method.Id(),Core.F_param_I_class(C_list,ToType(C_class.Id())).Id()),0,MakeFunction1(E_Generate_go_signature_method,"Generate_go_signature_method")),MakeString("gogen.cl:633")) + _ = Core.F_attach_method(C_Generate_go_signature.AddMethod(Signature(C_method.Id(),Core.F_param_I_class(C_list,ToType(C_class.Id())).Id()),0,MakeFunction1(E_Generate_go_signature_method,"Generate_go_signature_method")),MakeString("gogen.cl:634")) - _ = Core.F_attach_method(C_Generate_full_signature.AddMethod(Signature(C_method.Id(),Core.F_param_I_class(C_list,ToType(C_type.Id())).Id()),0,MakeFunction1(E_Generate_full_signature_method,"Generate_full_signature_method")),MakeString("gogen.cl:637")) + _ = Core.F_attach_method(C_Generate_full_signature.AddMethod(Signature(C_method.Id(),Core.F_param_I_class(C_list,ToType(C_type.Id())).Id()),0,MakeFunction1(E_Generate_full_signature_method,"Generate_full_signature_method")),MakeString("gogen.cl:638")) - _ = Core.F_attach_method(C_Generate_signature_I.AddMethod(Signature(C_Generate_go_producer.Id(),Core.F_param_I_class(C_list,ToType(C_type.Id())).Id(),C_void.Id()),1,MakeFunction2(E_Generate_signature_I_go_producer,"Generate_signature!_go_producer")),MakeString("gogen.cl:641")) + _ = Core.F_attach_method(C_Generate_signature_I.AddMethod(Signature(C_Generate_go_producer.Id(),Core.F_param_I_class(C_list,ToType(C_type.Id())).Id(),C_void.Id()),1,MakeFunction2(E_Generate_signature_I_go_producer,"Generate_signature!_go_producer")),MakeString("gogen.cl:642")) - _ = Core.F_attach_method(C_Generate_g_member.AddMethod(Signature(C_any.Id(),C_class.Id()),1,MakeFunction1(E_Generate_g_member_any,"Generate_g_member_any")),MakeString("gogen.cl:650")) + _ = Core.F_attach_method(C_Generate_g_member.AddMethod(Signature(C_any.Id(),C_class.Id()),1,MakeFunction1(E_Generate_g_member_any,"Generate_g_member_any")),MakeString("gogen.cl:651")) - _ = Core.F_attach_method(C_Generate_cast_Values.AddMethod(Signature(C_class.Id(),C_class.Id(),C_void.Id()),0,MakeFunction2(E_Generate_cast_Values_class,"Generate_cast_Values_class")),MakeString("gogen.cl:655")) + _ = Core.F_attach_method(C_Generate_cast_Values.AddMethod(Signature(C_class.Id(),C_class.Id(),C_void.Id()),0,MakeFunction2(E_Generate_cast_Values_class,"Generate_cast_Values_class")),MakeString("gogen.cl:656")) - _ = Core.F_attach_method(C_Generate_check_var.AddMethod(Signature(C_string.Id(),C_string.Id()),0,MakeFunction1(E_Generate_check_var_string,"Generate_check_var_string")),MakeString("gogen.cl:661")) + _ = Core.F_attach_method(C_Generate_check_var.AddMethod(Signature(C_string.Id(),C_string.Id()),0,MakeFunction1(E_Generate_check_var_string,"Generate_check_var_string")),MakeString("gogen.cl:662")) - _ = Core.F_attach_method(C_Generate_build_Variable.AddMethod(Signature(C_string.Id(),C_any.Id(),C_Variable.Id()),0,MakeFunction2(E_Generate_build_Variable_string,"Generate_build_Variable_string")),MakeString("gogen.cl:664")) + _ = Core.F_attach_method(C_Generate_build_Variable.AddMethod(Signature(C_string.Id(),C_any.Id(),C_Variable.Id()),0,MakeFunction2(E_Generate_build_Variable_string,"Generate_build_Variable_string")),MakeString("gogen.cl:665")) _ = Core.F_attach_method(C_Generate_use_variable.AddMethod(Signature(C_string.Id(), C_class.Id(), C_class.Id(), - C_void.Id()),1,MakeFunction3(E_Generate_use_variable_string,"Generate_use_variable_string")),MakeString("gogen.cl:670")) + C_void.Id()),1,MakeFunction3(E_Generate_use_variable_string,"Generate_use_variable_string")),MakeString("gogen.cl:671")) - _ = Core.F_attach_method(C_Generate_g_clean.AddMethod(Signature(C_any.Id(),C_boolean.Id()),1,MakeFunction1(E_Generate_g_clean_any,"Generate_g_clean_any")),MakeString("gogen.cl:674")) + _ = Core.F_attach_method(C_Generate_g_clean.AddMethod(Signature(C_any.Id(),C_boolean.Id()),1,MakeFunction1(E_Generate_g_clean_any,"Generate_g_clean_any")),MakeString("gogen.cl:675")) - _ = Core.F_attach_method(C_Generate_simple_func_ask.AddMethod(Signature(C_any.Id(),C_boolean.Id()),1,MakeFunction1(E_Generate_simple_func_ask_any,"Generate_simple_func?_any")),MakeString("gogen.cl:679")) + _ = Core.F_attach_method(C_Generate_simple_func_ask.AddMethod(Signature(C_any.Id(),C_boolean.Id()),1,MakeFunction1(E_Generate_simple_func_ask_any,"Generate_simple_func?_any")),MakeString("gogen.cl:680")) _ = Core.F_attach_method(C_Generate_g_func.AddMethod(Signature(C_any.Id(),C_boolean.Id()),1,MakeFunction1(E_Generate_g_func_any,"Generate_g_func_any")),MakeString("goexp.cl:69")) @@ -1567,107 +1569,107 @@ func MetaLoad() { _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(C_Variable.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Variable,"Generate_g_expression_Variable")),MakeString("goexp.cl:170")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Core.C_global_variable.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_global_variable,"Generate_g_expression_global_variable")),MakeString("goexp.cl:179")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Core.C_global_variable.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_global_variable,"Generate_g_expression_global_variable")),MakeString("goexp.cl:181")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Set.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Set,"Generate_g_expression_Set")),MakeString("goexp.cl:186")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Set.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Set,"Generate_g_expression_Set")),MakeString("goexp.cl:188")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(C_set.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_set,"Generate_g_expression_set")),MakeString("goexp.cl:194")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(C_set.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_set,"Generate_g_expression_set")),MakeString("goexp.cl:196")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Tuple.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Tuple,"Generate_g_expression_Tuple")),MakeString("goexp.cl:201")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Tuple.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Tuple,"Generate_g_expression_Tuple")),MakeString("goexp.cl:203")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(C_tuple.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_tuple,"Generate_g_expression_tuple")),MakeString("goexp.cl:207")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(C_tuple.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_tuple,"Generate_g_expression_tuple")),MakeString("goexp.cl:209")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_List.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_List,"Generate_g_expression_List")),MakeString("goexp.cl:214")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_List.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_List,"Generate_g_expression_List")),MakeString("goexp.cl:216")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(C_list.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_list,"Generate_g_expression_list")),MakeString("goexp.cl:222")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(C_list.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_list,"Generate_g_expression_list")),MakeString("goexp.cl:224")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(C_lambda.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_lambda,"Generate_g_expression_lambda")),MakeString("goexp.cl:231")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(C_lambda.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_lambda,"Generate_g_expression_lambda")),MakeString("goexp.cl:233")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Call.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Call,"Generate_g_expression_Call")),MakeString("goexp.cl:240")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Call.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Call,"Generate_g_expression_Call")),MakeString("goexp.cl:242")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Call_method1.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Call_method1,"Generate_g_expression_Call_method1")),MakeString("goexp.cl:243")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Call_method1.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Call_method1,"Generate_g_expression_Call_method1")),MakeString("goexp.cl:245")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Call_method2.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Call_method2,"Generate_g_expression_Call_method2")),MakeString("goexp.cl:244")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Call_method2.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Call_method2,"Generate_g_expression_Call_method2")),MakeString("goexp.cl:246")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Call_method.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Call_method,"Generate_g_expression_Call_method")),MakeString("goexp.cl:245")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Call_method.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Call_method,"Generate_g_expression_Call_method")),MakeString("goexp.cl:247")) _ = Core.F_attach_method(C_Generate_inline_exp.AddMethod(Signature(C_Generate_go_producer.Id(), Language.C_Call.Id(), C_class.Id(), - C_void.Id()),1,MakeFunction3(E_Generate_inline_exp_go_producer1,"Generate_inline_exp_go_producer1")),MakeString("goexp.cl:312")) + C_void.Id()),1,MakeFunction3(E_Generate_inline_exp_go_producer1,"Generate_inline_exp_go_producer1")),MakeString("goexp.cl:314")) - _ = Core.F_attach_method(C_Generate_args_list.AddMethod(Signature(C_list.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_args_list_list,"Generate_args_list_list")),MakeString("goexp.cl:322")) + _ = Core.F_attach_method(C_Generate_args_list.AddMethod(Signature(C_list.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_args_list_list,"Generate_args_list_list")),MakeString("goexp.cl:324")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Super.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Super,"Generate_g_expression_Super")),MakeString("goexp.cl:333")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Super.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Super,"Generate_g_expression_Super")),MakeString("goexp.cl:335")) _ = Core.F_attach_method(C_Generate_inline_exp.AddMethod(Signature(C_Generate_go_producer.Id(), Language.C_Call_method1.Id(), C_class.Id(), - C_void.Id()),1,MakeFunction3(E_Generate_inline_exp_go_producer2,"Generate_inline_exp_go_producer2")),MakeString("goexp.cl:383")) + C_void.Id()),1,MakeFunction3(E_Generate_inline_exp_go_producer2,"Generate_inline_exp_go_producer2")),MakeString("goexp.cl:385")) _ = Core.F_attach_method(C_Generate_inline_exp.AddMethod(Signature(C_Generate_go_producer.Id(), Language.C_Call_method2.Id(), C_class.Id(), - C_void.Id()),1,MakeFunction3(E_Generate_inline_exp_go_producer3,"Generate_inline_exp_go_producer3")),MakeString("goexp.cl:478")) + C_void.Id()),1,MakeFunction3(E_Generate_inline_exp_go_producer3,"Generate_inline_exp_go_producer3")),MakeString("goexp.cl:480")) _ = Core.F_attach_method(C_Generate_inline_exp.AddMethod(Signature(C_Generate_go_producer.Id(), Language.C_Call_method.Id(), C_class.Id(), - C_void.Id()),1,MakeFunction3(E_Generate_inline_exp_go_producer4,"Generate_inline_exp_go_producer4")),MakeString("goexp.cl:521")) + C_void.Id()),1,MakeFunction3(E_Generate_inline_exp_go_producer4,"Generate_inline_exp_go_producer4")),MakeString("goexp.cl:523")) _ = Core.F_attach_method(C_Generate_print_external_call.AddMethod(Signature(C_Generate_go_producer.Id(), Language.C_Call_method.Id(), C_class.Id(), - C_void.Id()),1,MakeFunction3(E_Generate_print_external_call_go_producer,"Generate_print_external_call_go_producer")),MakeString("goexp.cl:543")) + C_void.Id()),1,MakeFunction3(E_Generate_print_external_call_go_producer,"Generate_print_external_call_go_producer")),MakeString("goexp.cl:545")) _ = Core.F_attach_method(C_Generate_external_casted_arg.AddMethod(Signature(C_any.Id(), C_class.Id(), C_integer.Id(), C_boolean.Id(), - C_void.Id()),1,MakeFunction4(E_Generate_external_casted_arg_any,"Generate_external_casted_arg_any")),MakeString("goexp.cl:552")) + C_void.Id()),1,MakeFunction4(E_Generate_external_casted_arg_any,"Generate_external_casted_arg_any")),MakeString("goexp.cl:554")) - _ = Core.F_attach_method(C_Generate_bounded_expression.AddMethod(Signature(C_any.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_bounded_expression_any,"Generate_bounded_expression_any")),MakeString("goexp.cl:569")) + _ = Core.F_attach_method(C_Generate_bounded_expression.AddMethod(Signature(C_any.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_bounded_expression_any,"Generate_bounded_expression_any")),MakeString("goexp.cl:571")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_If.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_If,"Generate_g_expression_If")),MakeString("goexp.cl:581")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_If.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_If,"Generate_g_expression_If")),MakeString("goexp.cl:583")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_And.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_And,"Generate_g_expression_And")),MakeString("goexp.cl:594")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_And.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_And,"Generate_g_expression_And")),MakeString("goexp.cl:596")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Or.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Or,"Generate_g_expression_Or")),MakeString("goexp.cl:606")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Or.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Or,"Generate_g_expression_Or")),MakeString("goexp.cl:608")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Optimize.C_Compile_C_cast.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_C_cast,"Generate_g_expression_C_cast")),MakeString("goexp.cl:619")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Optimize.C_Compile_C_cast.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_C_cast,"Generate_g_expression_C_cast")),MakeString("goexp.cl:621")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Call_slot.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Call_slot,"Generate_g_expression_Call_slot")),MakeString("goexp.cl:634")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Call_slot.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Call_slot,"Generate_g_expression_Call_slot")),MakeString("goexp.cl:636")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Call_table.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Call_table,"Generate_g_expression_Call_table")),MakeString("goexp.cl:654")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Call_table.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Call_table,"Generate_g_expression_Call_table")),MakeString("goexp.cl:656")) - _ = Core.F_attach_method(C_Generate_g_table_index.AddMethod(Signature(C_table.Id(),C_any.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_table_index_table,"Generate_g_table_index_table")),MakeString("goexp.cl:665")) + _ = Core.F_attach_method(C_Generate_g_table_index.AddMethod(Signature(C_table.Id(),C_any.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_table_index_table,"Generate_g_table_index_table")),MakeString("goexp.cl:667")) - _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Call_array.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Call_array,"Generate_g_expression_Call_array")),MakeString("goexp.cl:676")) + _ = Core.F_attach_method(C_Generate_g_expression.AddMethod(Signature(Language.C_Call_array.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_g_expression_Call_array,"Generate_g_expression_Call_array")),MakeString("goexp.cl:678")) - _ = Core.F_attach_method(C_Generate_sign_equal.AddMethod(Signature(C_boolean.Id(),C_void.Id()),0,MakeFunction1(E_Generate_sign_equal_boolean,"Generate_sign_equal_boolean")),MakeString("goexp.cl:696")) + _ = Core.F_attach_method(C_Generate_sign_equal.AddMethod(Signature(C_boolean.Id(),C_void.Id()),0,MakeFunction1(E_Generate_sign_equal_boolean,"Generate_sign_equal_boolean")),MakeString("goexp.cl:698")) - _ = Core.F_attach_method(C_Generate_sign_or.AddMethod(Signature(C_boolean.Id(),C_void.Id()),0,MakeFunction1(E_Generate_sign_or_boolean,"Generate_sign_or_boolean")),MakeString("goexp.cl:699")) + _ = Core.F_attach_method(C_Generate_sign_or.AddMethod(Signature(C_boolean.Id(),C_void.Id()),0,MakeFunction1(E_Generate_sign_or_boolean,"Generate_sign_or_boolean")),MakeString("goexp.cl:701")) - _ = Core.F_attach_method(Optimize.C_Compile_bool_exp.AddMethod(Signature(C_any.Id(),C_boolean.Id(),C_void.Id()),1,MakeFunction2(E_Compile_bool_exp_any,"Compile_bool_exp_any")),MakeString("goexp.cl:703")) + _ = Core.F_attach_method(Optimize.C_Compile_bool_exp.AddMethod(Signature(C_any.Id(),C_boolean.Id(),C_void.Id()),1,MakeFunction2(E_Compile_bool_exp_any,"Compile_bool_exp_any")),MakeString("goexp.cl:705")) - _ = Core.F_attach_method(Optimize.C_Compile_bool_exp.AddMethod(Signature(Optimize.C_Compile_C_cast.Id(),C_boolean.Id(),C_void.Id()),1,MakeFunction2(E_Compile_bool_exp_C_cast,"Compile_bool_exp_C_cast")),MakeString("goexp.cl:707")) + _ = Core.F_attach_method(Optimize.C_Compile_bool_exp.AddMethod(Signature(Optimize.C_Compile_C_cast.Id(),C_boolean.Id(),C_void.Id()),1,MakeFunction2(E_Compile_bool_exp_C_cast,"Compile_bool_exp_C_cast")),MakeString("goexp.cl:709")) - _ = Core.F_attach_method(Optimize.C_Compile_bool_exp.AddMethod(Signature(Language.C_If.Id(),C_boolean.Id(),C_void.Id()),1,MakeFunction2(E_Compile_bool_exp_If,"Compile_bool_exp_If")),MakeString("goexp.cl:721")) + _ = Core.F_attach_method(Optimize.C_Compile_bool_exp.AddMethod(Signature(Language.C_If.Id(),C_boolean.Id(),C_void.Id()),1,MakeFunction2(E_Compile_bool_exp_If,"Compile_bool_exp_If")),MakeString("goexp.cl:723")) - _ = Core.F_attach_method(Optimize.C_Compile_bool_exp.AddMethod(Signature(Language.C_And.Id(),C_boolean.Id(),C_void.Id()),1,MakeFunction2(E_Compile_bool_exp_And,"Compile_bool_exp_And")),MakeString("goexp.cl:734")) + _ = Core.F_attach_method(Optimize.C_Compile_bool_exp.AddMethod(Signature(Language.C_And.Id(),C_boolean.Id(),C_void.Id()),1,MakeFunction2(E_Compile_bool_exp_And,"Compile_bool_exp_And")),MakeString("goexp.cl:736")) - _ = Core.F_attach_method(Optimize.C_Compile_bool_exp.AddMethod(Signature(Language.C_Or.Id(),C_boolean.Id(),C_void.Id()),1,MakeFunction2(E_Compile_bool_exp_Or,"Compile_bool_exp_Or")),MakeString("goexp.cl:747")) + _ = Core.F_attach_method(Optimize.C_Compile_bool_exp.AddMethod(Signature(Language.C_Or.Id(),C_boolean.Id(),C_void.Id()),1,MakeFunction2(E_Compile_bool_exp_Or,"Compile_bool_exp_Or")),MakeString("goexp.cl:749")) - _ = Core.F_attach_method(Optimize.C_Compile_bool_exp.AddMethod(Signature(Language.C_Call.Id(),C_boolean.Id(),C_void.Id()),1,MakeFunction2(E_Compile_bool_exp_Call,"Compile_bool_exp_Call")),MakeString("goexp.cl:754")) + _ = Core.F_attach_method(Optimize.C_Compile_bool_exp.AddMethod(Signature(Language.C_Call.Id(),C_boolean.Id(),C_void.Id()),1,MakeFunction2(E_Compile_bool_exp_Call,"Compile_bool_exp_Call")),MakeString("goexp.cl:756")) _ = Core.F_attach_method(C_Generate_belong_exp.AddMethod(Signature(C_any.Id(), C_any.Id(), C_class.Id(), - C_void.Id()),1,MakeFunction3(E_Generate_belong_exp_any,"Generate_belong_exp_any")),MakeString("goexp.cl:774")) + C_void.Id()),1,MakeFunction3(E_Generate_belong_exp_any,"Generate_belong_exp_any")),MakeString("goexp.cl:776")) - _ = Core.F_attach_method(Optimize.C_Compile_bool_exp.AddMethod(Signature(Language.C_Call_method1.Id(),C_boolean.Id(),C_void.Id()),1,MakeFunction2(E_Compile_bool_exp_Call_method1,"Compile_bool_exp_Call_method1")),MakeString("goexp.cl:785")) + _ = Core.F_attach_method(Optimize.C_Compile_bool_exp.AddMethod(Signature(Language.C_Call_method1.Id(),C_boolean.Id(),C_void.Id()),1,MakeFunction2(E_Compile_bool_exp_Call_method1,"Compile_bool_exp_Call_method1")),MakeString("goexp.cl:787")) - _ = Core.F_attach_method(Optimize.C_Compile_bool_exp.AddMethod(Signature(Language.C_Call_method2.Id(),C_boolean.Id(),C_void.Id()),1,MakeFunction2(E_Compile_bool_exp_Call_method2,"Compile_bool_exp_Call_method2")),MakeString("goexp.cl:809")) + _ = Core.F_attach_method(Optimize.C_Compile_bool_exp.AddMethod(Signature(Language.C_Call_method2.Id(),C_boolean.Id(),C_void.Id()),1,MakeFunction2(E_Compile_bool_exp_Call_method2,"Compile_bool_exp_Call_method2")),MakeString("goexp.cl:811")) _ = Core.F_attach_method(C_Generate_unfold_args.AddMethod(Signature(C_list.Id(),C_list.Id()),1,MakeFunction1(E_Generate_unfold_args_list,"Generate_unfold_args_list")),MakeString("gostat.cl:57")) @@ -1758,67 +1760,67 @@ func MetaLoad() { C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Let,"Generate_g_statement_Let")),MakeString("gostat.cl:303")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Let,"Generate_g_statement_Let")),MakeString("gostat.cl:305")) - _ = Core.F_attach_method(C_Generate_let_eid_ask.AddMethod(Signature(Language.C_Let.Id(),C_boolean.Id()),1,MakeFunction1(E_Generate_let_eid_ask_Let,"Generate_let_eid?_Let")),MakeString("gostat.cl:313")) + _ = Core.F_attach_method(C_Generate_let_eid_ask.AddMethod(Signature(Language.C_Let.Id(),C_boolean.Id()),1,MakeFunction1(E_Generate_let_eid_ask_Let,"Generate_let_eid?_Let")),MakeString("gostat.cl:315")) _ = Core.F_attach_method(C_Generate_g_eid_stat.AddMethod(Signature(Language.C_Let.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_eid_stat_Let,"Generate_g_eid_stat_Let")),MakeString("gostat.cl:327")) + C_void.Id()),1,MakeFunction5(E_Generate_g_eid_stat_Let,"Generate_g_eid_stat_Let")),MakeString("gostat.cl:329")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Construct.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Construct,"Generate_g_statement_Construct")),MakeString("gostat.cl:358")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Construct,"Generate_g_statement_Construct")),MakeString("gostat.cl:360")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_If.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_If,"Generate_g_statement_If")),MakeString("gostat.cl:382")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_If,"Generate_g_statement_If")),MakeString("gostat.cl:384")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_And.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_And,"Generate_g_statement_And")),MakeString("gostat.cl:412")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_And,"Generate_g_statement_And")),MakeString("gostat.cl:414")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Or.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Or,"Generate_g_statement_Or")),MakeString("gostat.cl:436")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Or,"Generate_g_statement_Or")),MakeString("gostat.cl:438")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Assign.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Assign,"Generate_g_statement_Assign")),MakeString("gostat.cl:451")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Assign,"Generate_g_statement_Assign")),MakeString("gostat.cl:453")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Gassign.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Gassign,"Generate_g_statement_Gassign")),MakeString("gostat.cl:469")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Gassign,"Generate_g_statement_Gassign")),MakeString("gostat.cl:473")) - _ = Core.F_attach_method(C_Generate_bag_class.AddMethod(Signature(C_any.Id(),C_class.Id()),1,MakeFunction1(E_Generate_bag_class_any,"Generate_bag_class_any")),MakeString("gostat.cl:483")) + _ = Core.F_attach_method(C_Generate_bag_class.AddMethod(Signature(C_any.Id(),C_class.Id()),1,MakeFunction1(E_Generate_bag_class_any,"Generate_bag_class_any")),MakeString("gostat.cl:487")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_For.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_For,"Generate_g_statement_For")),MakeString("gostat.cl:513")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_For,"Generate_g_statement_For")),MakeString("gostat.cl:517")) _ = Core.F_attach_method(C_Generate_iteration_statement.AddMethod(Signature(Language.C_For.Id(), C_any.Id(), @@ -1827,121 +1829,121 @@ func MetaLoad() { C_string.Id(), C_string.Id(), C_string.Id(), - C_integer.Id()),1,MakeFunction7(E_Generate_iteration_statement_For,"Generate_iteration_statement_For")),MakeString("gostat.cl:543")) + C_integer.Id()),1,MakeFunction7(E_Generate_iteration_statement_For,"Generate_iteration_statement_For")),MakeString("gostat.cl:547")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Iteration.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Iteration,"Generate_g_statement_Iteration")),MakeString("gostat.cl:586")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Iteration,"Generate_g_statement_Iteration")),MakeString("gostat.cl:590")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_While.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_While,"Generate_g_statement_While")),MakeString("gostat.cl:618")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_While,"Generate_g_statement_While")),MakeString("gostat.cl:622")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Return.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Return,"Generate_g_statement_Return")),MakeString("gostat.cl:630")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Return,"Generate_g_statement_Return")),MakeString("gostat.cl:634")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Call.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Call,"Generate_g_statement_Call")),MakeString("gostat.cl:648")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Call,"Generate_g_statement_Call")),MakeString("gostat.cl:652")) _ = Core.F_attach_method(C_Generate_inline_stat.AddMethod(Signature(Language.C_Call.Id(), C_class.Id(), C_string.Id(), - C_void.Id()),1,MakeFunction3(E_Generate_inline_stat_Call,"Generate_inline_stat_Call")),MakeString("gostat.cl:669")) + C_void.Id()),1,MakeFunction3(E_Generate_inline_stat_Call,"Generate_inline_stat_Call")),MakeString("gostat.cl:673")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Call_method.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Call_method,"Generate_g_statement_Call_method")),MakeString("gostat.cl:678")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Call_method,"Generate_g_statement_Call_method")),MakeString("gostat.cl:682")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Call_method1.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Call_method1,"Generate_g_statement_Call_method1")),MakeString("gostat.cl:686")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Call_method1,"Generate_g_statement_Call_method1")),MakeString("gostat.cl:690")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Call_method2.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Call_method2,"Generate_g_statement_Call_method2")),MakeString("gostat.cl:693")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Call_method2,"Generate_g_statement_Call_method2")),MakeString("gostat.cl:697")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Super.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Super,"Generate_g_statement_Super")),MakeString("gostat.cl:704")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Super,"Generate_g_statement_Super")),MakeString("gostat.cl:708")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Cast.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Cast,"Generate_g_statement_Cast")),MakeString("gostat.cl:709")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Cast,"Generate_g_statement_Cast")),MakeString("gostat.cl:713")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Handle.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Handle,"Generate_g_statement_Handle")),MakeString("gostat.cl:737")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Handle,"Generate_g_statement_Handle")),MakeString("gostat.cl:741")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Optimize.C_Compile_C_cast.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_C_cast,"Generate_g_statement_C_cast")),MakeString("gostat.cl:749")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_C_cast,"Generate_g_statement_C_cast")),MakeString("gostat.cl:753")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Call_slot.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Call_slot,"Generate_g_statement_Call_slot")),MakeString("gostat.cl:763")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Call_slot,"Generate_g_statement_Call_slot")),MakeString("gostat.cl:767")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Call_table.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Call_table,"Generate_g_statement_Call_table")),MakeString("gostat.cl:772")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Call_table,"Generate_g_statement_Call_table")),MakeString("gostat.cl:776")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Call_array.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Call_array,"Generate_g_statement_Call_array")),MakeString("gostat.cl:781")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Call_array,"Generate_g_statement_Call_array")),MakeString("gostat.cl:785")) _ = Core.F_attach_method(C_Generate_g_statement.AddMethod(Signature(Language.C_Update.Id(), C_class.Id(), C_string.Id(), C_boolean.Id(), C_any.Id(), - C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Update,"Generate_g_statement_Update")),MakeString("gostat.cl:830")) + C_void.Id()),1,MakeFunction5(E_Generate_g_statement_Update,"Generate_g_statement_Update")),MakeString("gostat.cl:834")) - _ = Core.F_attach_method(C_Generate_update_statement.AddMethod(Signature(Language.C_Update.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_update_statement_Update,"Generate_update_statement_Update")),MakeString("gostat.cl:884")) + _ = Core.F_attach_method(C_Generate_update_statement.AddMethod(Signature(Language.C_Update.Id(),C_class.Id(),C_void.Id()),1,MakeFunction2(E_Generate_update_statement_Update,"Generate_update_statement_Update")),MakeString("gostat.cl:888")) - _ = Core.F_attach_method(C_Generate_need_shortcut.AddMethod(Signature(C_any.Id(),C_boolean.Id()),0,MakeFunction1(E_Generate_need_shortcut_any,"Generate_need_shortcut_any")),MakeString("gostat.cl:892")) + _ = Core.F_attach_method(C_Generate_need_shortcut.AddMethod(Signature(C_any.Id(),C_boolean.Id()),0,MakeFunction1(E_Generate_need_shortcut_any,"Generate_need_shortcut_any")),MakeString("gostat.cl:896")) _ = Core.F_attach_method(C_Generate_external_I.AddMethod(Signature(C_module.Id(),C_string.Id()),0,MakeFunction1(E_Generate_external_I_module,"Generate_external!_module")),MakeString("gomain.cl:31")) diff --git a/src/Generate/goexp.go b/src/Generate/goexp.go index bf6c987..d1c854e 100644 --- a/src/Generate/goexp.go +++ b/src/Generate/goexp.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/compile/goexp.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:21 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:45 *****/ package Generate import (_ "fmt" @@ -11,7 +11,7 @@ import (_ "fmt" ) //-------- dumb function to prevent import errors -------- -func import_g0071() { +func import_g0072() { _ = Core.It _ = Language.It _ = Reader.It @@ -61,7 +61,7 @@ func F_Generate_g_func_any (self *ClaireAny ) EID { // eid body s = boolean var Result EID if (self.Isa.IsIn(C_bag) == CTRUE) { - { var g0072 *ClaireBag = ToBag(self) + { var g0073 *ClaireBag = ToBag(self) { var arg_1 *ClaireAny var try_2 EID { @@ -70,7 +70,7 @@ func F_Generate_g_func_any (self *ClaireAny ) EID { try_2= EID{CFALSE.Id(),0} var x_support *ClaireList var try_3 EID - try_3 = Core.F_enumerate_any(g0072.Id()) + try_3 = Core.F_enumerate_any(g0073.Id()) if ErrorIn(try_3) {try_2 = try_3 } else { x_support = ToList(OBJ(try_3)) @@ -79,7 +79,7 @@ func F_Generate_g_func_any (self *ClaireAny ) EID { x = x_support.At(i_it) var loop_4 EID _ = loop_4 - var g0086I *ClaireBoolean + var g0087I *ClaireBoolean var try_5 EID { var arg_6 *ClaireBoolean var try_7 EID @@ -92,8 +92,8 @@ func F_Generate_g_func_any (self *ClaireAny ) EID { } if ErrorIn(try_5) {loop_4 = try_5 } else { - g0086I = ToBoolean(OBJ(try_5)) - if (g0086I == CTRUE) { + g0087I = ToBoolean(OBJ(try_5)) + if (g0087I == CTRUE) { try_2 = EID{CTRUE.Id(),0} break } else { @@ -114,14 +114,14 @@ func F_Generate_g_func_any (self *ClaireAny ) EID { } } } else if (self.Isa.IsIn(Language.C_Construct) == CTRUE) { - { var g0073 *Language.Construct = Language.To_Construct(self) - if (((g0073.Isa.IsIn(Language.C_Set) == CTRUE) || - (g0073.Isa.IsIn(Language.C_List) == CTRUE)) || - (g0073.Isa.IsIn(Language.C_Tuple) == CTRUE)) { + { var g0074 *Language.Construct = Language.To_Construct(self) + if (((g0074.Isa.IsIn(Language.C_Set) == CTRUE) || + (g0074.Isa.IsIn(Language.C_List) == CTRUE)) || + (g0074.Isa.IsIn(Language.C_Tuple) == CTRUE)) { { var v_and5 *ClaireBoolean - v_and5 = Core.F__inf_integer(g0073.Args.Length(),15) + v_and5 = Core.F__inf_integer(g0074.Args.Length(),15) if (v_and5 == CFALSE) {Result = EID{CFALSE.Id(),0} } else { var try_8 EID @@ -132,13 +132,13 @@ func F_Generate_g_func_any (self *ClaireAny ) EID { _ = x try_10= EID{CFALSE.Id(),0} var x_support *ClaireList - x_support = g0073.Args + x_support = g0074.Args x_len := x_support.Length() for i_it := 0; i_it < x_len; i_it++ { x = x_support.At(i_it) var loop_11 EID _ = loop_11 - var g0087I *ClaireBoolean + var g0088I *ClaireBoolean var try_12 EID { var arg_13 *ClaireBoolean var try_14 EID @@ -151,8 +151,8 @@ func F_Generate_g_func_any (self *ClaireAny ) EID { } if ErrorIn(try_12) {loop_11 = try_12 } else { - g0087I = ToBoolean(OBJ(try_12)) - if (g0087I == CTRUE) { + g0088I = ToBoolean(OBJ(try_12)) + if (g0088I == CTRUE) { try_10 = EID{CTRUE.Id(),0} break } else { @@ -185,21 +185,21 @@ func F_Generate_g_func_any (self *ClaireAny ) EID { } } } else if (self.Isa.IsIn(Language.C_If) == CTRUE) { - { var g0074 *Language.If = Language.To_If(self) + { var g0075 *Language.If = Language.To_If(self) { var v_and4 *ClaireBoolean var try_15 EID - try_15 = F_Generate_g_func_any(g0074.Test) + try_15 = F_Generate_g_func_any(g0075.Test) if ErrorIn(try_15) {Result = try_15 } else { v_and4 = ToBoolean(OBJ(try_15)) if (v_and4 == CFALSE) {Result = EID{CFALSE.Id(),0} } else { - v_and4 = F_Generate_constant_ask_any(g0074.Arg) + v_and4 = F_Generate_constant_ask_any(g0075.Arg) if (v_and4 == CFALSE) {Result = EID{CFALSE.Id(),0} } else { - v_and4 = F_Generate_constant_ask_any(g0074.Other) + v_and4 = F_Generate_constant_ask_any(g0075.Other) if (v_and4 == CFALSE) {Result = EID{CFALSE.Id(),0} } else { Result = EID{CTRUE.Id(),0}} @@ -209,26 +209,26 @@ func F_Generate_g_func_any (self *ClaireAny ) EID { } } } else if (self.Isa.IsIn(Language.C_And) == CTRUE) { - { var g0075 *Language.And = Language.To_And(self) - Result = F_Generate_g_func_any(g0075.Args.Id()) + { var g0076 *Language.And = Language.To_And(self) + Result = F_Generate_g_func_any(g0076.Args.Id()) } } else if (self.Isa.IsIn(Language.C_Or) == CTRUE) { - { var g0076 *Language.Or = Language.To_Or(self) - Result = F_Generate_g_func_any(g0076.Args.Id()) + { var g0077 *Language.Or = Language.To_Or(self) + Result = F_Generate_g_func_any(g0077.Args.Id()) } } else if (self.Isa.IsIn(Language.C_Call) == CTRUE) { - { var g0077 *Language.Call = Language.To_Call(self) + { var g0078 *Language.Call = Language.To_Call(self) { var v_and4 *ClaireBoolean var try_16 EID - try_16 = F_Generate_g_func_any(g0077.Args.Id()) + try_16 = F_Generate_g_func_any(g0078.Args.Id()) if ErrorIn(try_16) {Result = try_16 } else { v_and4 = ToBoolean(OBJ(try_16)) if (v_and4 == CFALSE) {Result = EID{CFALSE.Id(),0} } else { - v_and4 = Core.F__I_equal_any(g0077.Selector.Id(),Optimize.C_Compile_object_I.Id()) + v_and4 = Core.F__I_equal_any(g0078.Selector.Id(),Optimize.C_Compile_object_I.Id()) if (v_and4 == CFALSE) {Result = EID{CFALSE.Id(),0} } else { var try_17 EID @@ -239,13 +239,13 @@ func F_Generate_g_func_any (self *ClaireAny ) EID { _ = x try_19= EID{CFALSE.Id(),0} var x_support *ClaireList - x_support = g0077.Args + x_support = g0078.Args x_len := x_support.Length() for i_it := 0; i_it < x_len; i_it++ { x = x_support.At(i_it) var loop_20 EID _ = loop_20 - var g0088I *ClaireBoolean + var g0089I *ClaireBoolean var try_21 EID { var arg_22 *ClaireBoolean var try_23 EID @@ -266,8 +266,8 @@ func F_Generate_g_func_any (self *ClaireAny ) EID { } if ErrorIn(try_21) {loop_20 = try_21 } else { - g0088I = ToBoolean(OBJ(try_21)) - if (g0088I == CTRUE) { + g0089I = ToBoolean(OBJ(try_21)) + if (g0089I == CTRUE) { try_19 = EID{CTRUE.Id(),0} break } else { @@ -298,16 +298,16 @@ func F_Generate_g_func_any (self *ClaireAny ) EID { } } } else if (self.Isa.IsIn(Language.C_Super) == CTRUE) { - { var g0078 *Language.Super = Language.To_Super(self) - Result = F_Generate_g_func_any(g0078.Args.Id()) + { var g0079 *Language.Super = Language.To_Super(self) + Result = F_Generate_g_func_any(g0079.Args.Id()) } } else if (self.Isa.IsIn(Language.C_Call_method) == CTRUE) { - { var g0079 *Language.CallMethod = Language.To_CallMethod(self) + { var g0080 *Language.CallMethod = Language.To_CallMethod(self) { var v_and4 *ClaireBoolean var try_26 EID - try_26 = F_Generate_g_func_any(g0079.Args.Id()) + try_26 = F_Generate_g_func_any(g0080.Args.Id()) if ErrorIn(try_26) {Result = try_26 } else { v_and4 = ToBoolean(OBJ(try_26)) @@ -317,7 +317,7 @@ func F_Generate_g_func_any (self *ClaireAny ) EID { { var v_or6 *ClaireBoolean - v_or6 = Equal(g0079.Arg.Id(),Optimize.C_Compile_m_unsafe.Value) + v_or6 = Equal(g0080.Arg.Id(),Optimize.C_Compile_m_unsafe.Value) if (v_or6 == CTRUE) {try_27 = EID{CTRUE.Id(),0} } else { var try_28 EID @@ -328,13 +328,13 @@ func F_Generate_g_func_any (self *ClaireAny ) EID { _ = x try_30= EID{CFALSE.Id(),0} var x_support *ClaireList - x_support = g0079.Args + x_support = g0080.Args x_len := x_support.Length() for i_it := 0; i_it < x_len; i_it++ { x = x_support.At(i_it) var loop_31 EID _ = loop_31 - var g0089I *ClaireBoolean + var g0090I *ClaireBoolean var try_32 EID { var arg_33 *ClaireBoolean var try_34 EID @@ -355,8 +355,8 @@ func F_Generate_g_func_any (self *ClaireAny ) EID { } if ErrorIn(try_32) {loop_31 = try_32 } else { - g0089I = ToBoolean(OBJ(try_32)) - if (g0089I == CTRUE) { + g0090I = ToBoolean(OBJ(try_32)) + if (g0090I == CTRUE) { try_30 = EID{CTRUE.Id(),0} break } else { @@ -395,24 +395,24 @@ func F_Generate_g_func_any (self *ClaireAny ) EID { } } } else if (self.Isa.IsIn(Language.C_Call_slot) == CTRUE) { - { var g0080 *Language.CallSlot = Language.To_CallSlot(self) - Result = F_Generate_g_func_any(g0080.Arg) + { var g0081 *Language.CallSlot = Language.To_CallSlot(self) + Result = F_Generate_g_func_any(g0081.Arg) } } else if (self.Isa.IsIn(Language.C_Call_table) == CTRUE) { - { var g0081 *Language.CallTable = Language.To_CallTable(self) - Result = F_Generate_g_func_any(g0081.Arg) + { var g0082 *Language.CallTable = Language.To_CallTable(self) + Result = F_Generate_g_func_any(g0082.Arg) } } else if (self.Isa.IsIn(Language.C_Call_array) == CTRUE) { - { var g0082 *Language.CallArray = Language.To_CallArray(self) - Result = F_Generate_g_func_any(g0082.Arg) + { var g0083 *Language.CallArray = Language.To_CallArray(self) + Result = F_Generate_g_func_any(g0083.Arg) } } else if (self.Isa.IsIn(Language.C_Cast) == CTRUE) { - { var g0083 *Language.Cast = Language.To_Cast(self) - Result = F_Generate_g_func_any(g0083.Arg) + { var g0084 *Language.Cast = Language.To_Cast(self) + Result = F_Generate_g_func_any(g0084.Arg) } } else if (self.Isa.IsIn(Optimize.C_Compile_C_cast) == CTRUE) { - { var g0084 *Optimize.Compile_CCast = Optimize.To_Compile_CCast(self) - Result = F_Generate_g_func_any(g0084.Arg) + { var g0085 *Optimize.Compile_CCast = Optimize.To_Compile_CCast(self) + Result = F_Generate_g_func_any(g0085.Arg) } } else { Result = EID{MakeBoolean((self.Isa.IsIn(C_thing) == CTRUE) || @@ -453,7 +453,6 @@ func F_Generate_g_expression_any (self *ClaireAny ,s *ClaireClass ) EID { F_Generate_object_prefix_class(C_any,s) PRINC("CNULL") F_Generate_object_post_class(C_any,s) - PRINC("") Result = EVOID } return Result} @@ -473,7 +472,6 @@ func F_Generate_g_expression_thing (self *ClaireThing ,s *ClaireClass ) EID { F_Generate_object_prefix_class(self.Id().Isa,s) F_Generate_thing_ident_thing(self) F_Generate_object_post_class(self.Id().Isa,s) - PRINC("") Result = EVOID } return Result} @@ -511,7 +509,6 @@ func F_Generate_g_expression_module (self *ClaireModule ,s *ClaireClass ) EID { PRINC(".It") } F_Generate_object_post_class(self.Id().Isa,s) - PRINC("") Result = EVOID } return Result} @@ -531,7 +528,6 @@ func F_Generate_g_expression_class (self *ClaireClass ,s *ClaireClass ) EID { F_Generate_object_prefix_class(C_class,s) F_Generate_class_ident_class(self) F_Generate_object_post_class(C_class,s) - PRINC("") Result = EVOID } return Result} @@ -553,7 +549,6 @@ func F_Generate_g_expression_boolean (self *ClaireBoolean ,s *ClaireClass ) EID MakeString("CTRUE").Id(), MakeString("CFALSE").Id()))) F_Generate_object_post_class(C_boolean,s) - PRINC("") Result = EVOID } return Result} @@ -646,7 +641,6 @@ func F_Generate_g_expression_string (self *ClaireString ,s *ClaireClass ) EID { if !ErrorIn(Result) { PRINC(")") F_Generate_object_post_class(C_string,s) - PRINC("") Result = EVOID } } @@ -673,7 +667,6 @@ func F_Generate_g_expression_symbol (self *ClaireSymbol ,s *ClaireClass ) EID { if !ErrorIn(Result) { PRINC(")") F_Generate_object_post_class(C_object,s) - PRINC("") Result = EVOID }} } @@ -693,7 +686,6 @@ func F_Generate_g_expression_environment (self *ClaireEnvironment ,s *ClaireClas F_Generate_object_prefix_class(C_environment,s) PRINC("ClEnv") F_Generate_object_post_class(C_environment,s) - PRINC("") Result = EVOID } return Result} @@ -719,7 +711,6 @@ func F_Generate_g_expression_function (self *ClaireFunction ,s *ClaireClass ) EI if !ErrorIn(Result) { PRINC(")") F_Generate_object_post_class(C_function,s) - PRINC("") Result = EVOID } } @@ -760,6 +751,7 @@ func E_Generate_g_expression_Variable (self EID,s EID) EID { return F_Generate_g_expression_Variable(To_Variable(OBJ(self)),ToClass(OBJ(s)) )} // global_variables are CLAIRE objects +// v4.0.4 : handle optimized variables (nativeVarG) /* The go function for: g_expression(self:global_variable,s:class) [status=1] */ func F_Generate_g_expression_global_variable (self *Core.GlobalVariable ,s *ClaireClass ) EID { // eid body s = void @@ -772,10 +764,19 @@ func F_Generate_g_expression_global_variable (self *Core.GlobalVariable ,s *Clai (Equal(self.Value,CNIL.Id()) == CTRUE)))) { Result = Core.F_CALL(C_Generate_g_expression,ARGS(self.Value.ToEID(),EID{s.Id(),0})) } else { - F_Generate_object_prefix_class(C_any,s) - ToGenerateGoProducer(Optimize.C_PRODUCER.Value).GlobalVar(self) - F_Generate_object_post_class(C_any,s) - Result = EVOID + { var s2 *ClaireClass + if (Optimize.F_Compile_nativeVar_ask_global_variable(self) == CTRUE) { + s2 = F_Generate_getRange_global_variable(self) + } else { + s2 = C_any + } + Result = F_Generate_cast_prefix_class(s2,s) + if !ErrorIn(Result) { + ToGenerateGoProducer(Optimize.C_PRODUCER.Value).GlobalVar(self) + F_Generate_cast_post_class(s2,s) + Result = EVOID + } + } } return Result} @@ -824,7 +825,6 @@ func F_Generate_g_expression_set (self *ClaireSet ,s *ClaireClass ) EID { if !ErrorIn(Result) { PRINC("CEMPTY") F_Generate_cast_post_class(C_set,s) - PRINC("") Result = EVOID } } else { @@ -926,7 +926,6 @@ func F_Generate_g_expression_list (self *ClaireList ,s *ClaireClass ) EID { if !ErrorIn(Result) { PRINC("CNIL") F_Generate_cast_post_class(C_list,s) - PRINC("") Result = EVOID } } else { @@ -950,17 +949,16 @@ func F_Generate_g_expression_lambda (self *ClaireLambda ,s *ClaireClass ) EID { // eid body s = void var Result EID Optimize.F_Optimize_legal_ask_module(Reader.It,self.Id()) - Result = F_Generate_cast_prefix_class(C_lambda,s) + Result = F_Generate_eid_prefix_class(s) if !ErrorIn(Result) { - PRINC("Core.F_read_lambda(MakeString(\"lambda[(") + PRINC("Core.F_read_lambda_string(MakeString(\"lambda[(") Result = Language.F_ppvariable_list(self.Vars) if !ErrorIn(Result) { PRINC("),") Result = Core.F_CALL(C_print,ARGS(self.Body.ToEID())) if !ErrorIn(Result) { PRINC("]\"))") - F_Generate_cast_post_class(C_lambda,s) - PRINC("") + F_Generate_eid_post_class(s) Result = EVOID }}} return Result} @@ -1043,7 +1041,6 @@ func F_Generate_inline_exp_go_producer1 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC("]") F_Generate_eid_post_class(s) - PRINC("") Result = EVOID }} } else if (p.Id() == Optimize.C_safe.Id()) { @@ -1065,7 +1062,6 @@ func F_Generate_inline_exp_go_producer1 (c *GenerateGoProducer ,self *Language.C F_Generate_integer_prefix_class(s) PRINC("ClEnv.Base") F_Generate_native_post_class(s) - PRINC("") Result = EVOID } else if (p.Id() == Core.C_Core__inf_equalt.Id()) { F_Generate_object_prefix_class(C_boolean,s) @@ -1076,7 +1072,6 @@ func F_Generate_inline_exp_go_producer1 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_object_post_class(C_boolean,s) - PRINC("") Result = EVOID }} } else if ((p.Id() == Core.C_mClaire_index_I.Id()) && @@ -1084,7 +1079,6 @@ func F_Generate_inline_exp_go_producer1 (c *GenerateGoProducer ,self *Language.C F_Generate_integer_prefix_class(s) PRINC("ClEnv.Index") F_Generate_native_post_class(s) - PRINC("") Result = EVOID } else if ((p.Id() == Core.C_mClaire_push_I.Id()) && (n == 1)) { @@ -1104,26 +1098,15 @@ func F_Generate_inline_exp_go_producer1 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC("]=") Result = Core.F_CALL(C_Generate_g_expression,ARGS(self.Args.At(2-1).ToEID(),EID{Optimize.C_EID.Id(),0})) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }} + } } else if ((p.Id() == Core.C_mClaire_set_base.Id()) && (s.Id() == C_void.Id())) { PRINC("ClEnv.Base= ") Result = Core.F_CALL(C_Generate_g_expression,ARGS(a1.ToEID(),EID{C_integer.Id(),0})) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - } } else if ((p.Id() == Core.C_mClaire_set_index.Id()) && (s.Id() == C_void.Id())) { PRINC("ClEnv.Index= ") Result = Core.F_CALL(C_Generate_g_expression,ARGS(a1.ToEID(),EID{C_integer.Id(),0})) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - } } else if (p.Id() == Optimize.C_Compile_anyObject_I.Id()) { if (a1 == C_Interval.Id()) { F_Generate_object_prefix_class(C_any,s) @@ -1141,7 +1124,6 @@ func F_Generate_inline_exp_go_producer1 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_object_post_class(C_any,s) - PRINC("") Result = EVOID } } else { @@ -1160,7 +1142,6 @@ func F_Generate_inline_exp_go_producer1 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_object_post_class(C_any,s) - PRINC("") Result = EVOID } } @@ -1180,7 +1161,6 @@ func F_Generate_inline_exp_go_producer1 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_cast_post_class(C_slot,s) - PRINC("") Result = EVOID }}}}} } else { @@ -1195,7 +1175,6 @@ func F_Generate_inline_exp_go_producer1 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC("))") F_Generate_eid_post_class(s) - PRINC("") Result = EVOID }}} } @@ -1247,8 +1226,6 @@ func F_Generate_args_list_list (self *ClaireList ,s *ClaireClass ) EID { if ErrorIn(loop_1) {Result = loop_1 break } else { - PRINC("") - loop_1 = EVOID } } if ErrorIn(loop_1) {Result = loop_1 @@ -1299,7 +1276,6 @@ func F_Generate_g_expression_Super (self *Language.Super ,s *ClaireClass ) EID { if !ErrorIn(Result) { PRINC("))") F_Generate_eid_post_class(s) - PRINC("") Result = EVOID }}}} return Result} @@ -1339,7 +1315,6 @@ func F_Generate_inline_exp_go_producer2 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_cast_post_class(dm,s) - PRINC("") Result = EVOID }} } else if ((p.Id() == Core.C_owner.Id()) && @@ -1350,11 +1325,10 @@ func F_Generate_inline_exp_go_producer2 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_object_post_class(C_class,s) - PRINC("") Result = EVOID } } else { - var g0092I *ClaireBoolean + var g0093I *ClaireBoolean var try_2 EID { var v_and7 *ClaireBoolean @@ -1375,14 +1349,13 @@ func F_Generate_inline_exp_go_producer2 (c *GenerateGoProducer ,self *Language.C } if ErrorIn(try_2) {Result = try_2 } else { - g0092I = ToBoolean(OBJ(try_2)) - if (g0092I == CTRUE) { + g0093I = ToBoolean(OBJ(try_2)) + if (g0093I == CTRUE) { F_Generate_object_prefix_class(C_class,s) Result = Core.F_CALL(C_Generate_g_expression,ARGS(a1.ToEID(),EID{C_any.Id(),0})) if !ErrorIn(Result) { PRINC(".Isa") F_Generate_object_post_class(C_class,s) - PRINC("") Result = EVOID } } else if (p.Id() == Core.C_eval.Id()) { @@ -1393,13 +1366,12 @@ func F_Generate_inline_exp_go_producer2 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_eid_post_class(s) - PRINC("") Result = EVOID }} } else if (m.Selector.Id() == Core.C_externC.Id()) { Result = Core.F_CALL(C_princ,ARGS(a1.ToEID())) } else { - var g0093I *ClaireBoolean + var g0094I *ClaireBoolean var try_4 EID { var v_and8 *ClaireBoolean @@ -1420,18 +1392,17 @@ func F_Generate_inline_exp_go_producer2 (c *GenerateGoProducer ,self *Language.C } if ErrorIn(try_4) {Result = try_4 } else { - g0093I = ToBoolean(OBJ(try_4)) - if (g0093I == CTRUE) { + g0094I = ToBoolean(OBJ(try_4)) + if (g0094I == CTRUE) { F_Generate_integer_prefix_class(s) Result = Core.F_CALL(C_Generate_g_expression,ARGS(a1.ToEID(),EID{C_list.Id(),0})) if !ErrorIn(Result) { PRINC(".Length()") F_Generate_native_post_class(s) - PRINC("") Result = EVOID } } else { - var g0094I *ClaireBoolean + var g0095I *ClaireBoolean var try_6 EID { var v_and9 *ClaireBoolean @@ -1456,15 +1427,14 @@ func F_Generate_inline_exp_go_producer2 (c *GenerateGoProducer ,self *Language.C } if ErrorIn(try_6) {Result = try_6 } else { - g0094I = ToBoolean(OBJ(try_6)) - if (g0094I == CTRUE) { + g0095I = ToBoolean(OBJ(try_6)) + if (g0095I == CTRUE) { F_Generate_integer_prefix_class(s) PRINC("int(") Result = Core.F_CALL(C_Generate_g_expression,ARGS(a1.ToEID(),EID{C_char.Id(),0})) if !ErrorIn(Result) { PRINC(")") F_Generate_native_post_class(s) - PRINC("") Result = EVOID } } else if ((m.Id() == C_Generate__starof_bag_star.Value) || @@ -1475,14 +1445,13 @@ func F_Generate_inline_exp_go_producer2 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(".Of()") F_Generate_cast_post_class(C_type,s) - PRINC("") Result = EVOID }} } else if (m.Id() == Optimize.C_Compile_m_unsafe.Value) { if (s.Id() == Optimize.C_EID.Id()) { Result = Core.F_CALL(C_Generate_g_expression,ARGS(a1.ToEID(),EID{Optimize.C_EID.Id(),0})) } else { - var g0095I *ClaireBoolean + var g0096I *ClaireBoolean var try_8 EID { var arg_9 *ClaireBoolean var try_10 EID @@ -1495,8 +1464,8 @@ func F_Generate_inline_exp_go_producer2 (c *GenerateGoProducer ,self *Language.C } if ErrorIn(try_8) {Result = try_8 } else { - g0095I = ToBoolean(OBJ(try_8)) - if (g0095I == CTRUE) { + g0096I = ToBoolean(OBJ(try_8)) + if (g0096I == CTRUE) { Result = Core.F_CALL(C_Generate_g_expression,ARGS(a1.ToEID(),EID{s.Id(),0})) } else { Result = F_Generate_cast_prefix_class(C_any,s) @@ -1506,7 +1475,6 @@ func F_Generate_inline_exp_go_producer2 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_cast_post_class(C_any,s) - PRINC("") Result = EVOID }} } @@ -1527,7 +1495,6 @@ func F_Generate_inline_exp_go_producer2 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(".Copy()") F_Generate_cast_post_class(C_list,s) - PRINC("") Result = EVOID }} } else if (m.Id() == C_Generate__starlength_array_star.Value) { @@ -1536,11 +1503,10 @@ func F_Generate_inline_exp_go_producer2 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(".Length()") F_Generate_native_post_class(s) - PRINC("") Result = EVOID } } else { - var g0096I *ClaireBoolean + var g0097I *ClaireBoolean var try_11 EID { var v_and10 *ClaireBoolean @@ -1569,14 +1535,13 @@ func F_Generate_inline_exp_go_producer2 (c *GenerateGoProducer ,self *Language.C } if ErrorIn(try_11) {Result = try_11 } else { - g0096I = ToBoolean(OBJ(try_11)) - if (g0096I == CTRUE) { + g0097I = ToBoolean(OBJ(try_11)) + if (g0097I == CTRUE) { F_Generate_object_prefix_class(C_boolean,s) Result = Core.F_CALL(C_Generate_g_expression,ARGS(a1.ToEID(),EID{C_boolean.Id(),0})) if !ErrorIn(Result) { PRINC(".Not") F_Generate_object_post_class(C_boolean,s) - PRINC("") Result = EVOID } } else if ((m.Id() == C_Generate__starnew_class1_star.Value) && @@ -1589,7 +1554,6 @@ func F_Generate_inline_exp_go_producer2 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_object_post_class(C_any,s) - PRINC("") Result = EVOID } } else { @@ -1661,15 +1625,15 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C Result = EVOID }}} } else { - var g0100I *ClaireBoolean + var g0101I *ClaireBoolean { var v_and8 *ClaireBoolean v_and8 = Equal(m.Domain.ValuesO()[1-1],m.Domain.ValuesO()[2-1]) - if (v_and8 == CFALSE) {g0100I = CFALSE + if (v_and8 == CFALSE) {g0101I = CFALSE } else { v_and8 = MakeBoolean((s1.Id() == C_integer.Id()) || (s1.Id() == C_float.Id())) - if (v_and8 == CFALSE) {g0100I = CFALSE + if (v_and8 == CFALSE) {g0101I = CFALSE } else { { var v_or11 *ClaireBoolean @@ -1684,12 +1648,12 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C if (v_and13 == CFALSE) {v_or11 = CFALSE } else { if (C_integer.Id() == a2.Isa.Id()) { - { var g0097 int = ToInteger(a2).Value - v_and13 = Core.F__I_equal_any(MakeInteger(g0097).Id(),MakeInteger(0).Id()) + { var g0098 int = ToInteger(a2).Value + v_and13 = Core.F__I_equal_any(MakeInteger(g0098).Id(),MakeInteger(0).Id()) } } else if (C_float.Id() == a2.Isa.Id()) { - { var g0098 float64 = ToFloat(a2).Value - v_and13 = Core.F__I_equal_any(MakeFloat(g0098).Id(),MakeFloat(0).Id()) + { var g0099 float64 = ToFloat(a2).Value + v_and13 = Core.F__I_equal_any(MakeFloat(g0099).Id(),MakeFloat(0).Id()) } } else { v_and13 = F__sup_equal_integer(Optimize.C_compiler.Safety,3) @@ -1704,13 +1668,13 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C v_and8 = CFALSE} } } - if (v_and8 == CFALSE) {g0100I = CFALSE + if (v_and8 == CFALSE) {g0101I = CFALSE } else { - g0100I = CTRUE} + g0101I = CTRUE} } } } - if (g0100I == CTRUE) { + if (g0101I == CTRUE) { Result = F_Generate_cast_prefix_class(s1,s) if !ErrorIn(Result) { PRINC("(") @@ -1728,11 +1692,10 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_cast_post_class(s1,s) - PRINC("") Result = EVOID }}} } else { - var g0101I *ClaireBoolean + var g0102I *ClaireBoolean var try_7 EID { var v_and9 *ClaireBoolean @@ -1753,8 +1716,8 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C } if ErrorIn(try_7) {Result = try_7 } else { - g0101I = ToBoolean(OBJ(try_7)) - if (g0101I == CTRUE) { + g0102I = ToBoolean(OBJ(try_7)) + if (g0102I == CTRUE) { F_Generate_object_prefix_class(C_boolean,s) Result = Core.F_CALL(C_Generate_g_expression,ARGS(a1.ToEID(),EID{C_list.Id(),0})) if !ErrorIn(Result) { @@ -1763,7 +1726,6 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_object_post_class(C_boolean,s) - PRINC("") Result = EVOID }} } else if (m.Id() == C_Generate__starcontain_set_star.Value) { @@ -1798,7 +1760,6 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_object_post_class(C_boolean,s) - PRINC("") Result = EVOID }} } @@ -1826,7 +1787,6 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_object_post_class(C_boolean,s) - PRINC("") Result = EVOID }} } else if (m.Id() == C_Generate__starequal_star.Value) { @@ -1839,7 +1799,6 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_object_post_class(C_boolean,s) - PRINC("") Result = EVOID }} } else if (m.Id() == C_Generate__starmap_star.Value) { @@ -1860,7 +1819,6 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_object_post_class(C_boolean,s) - PRINC("") Result = EVOID }} } else if ((p.Id() == Core.C_Core__inf_equalt.Id()) || @@ -1873,11 +1831,10 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_object_post_class(C_boolean,s) - PRINC("") Result = EVOID }} } else { - var g0102I *ClaireBoolean + var g0103I *ClaireBoolean var try_11 EID { var v_or10 *ClaireBoolean @@ -1924,8 +1881,8 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C } if ErrorIn(try_11) {Result = try_11 } else { - g0102I = ToBoolean(OBJ(try_11)) - if (g0102I == CTRUE) { + g0103I = ToBoolean(OBJ(try_11)) + if (g0103I == CTRUE) { { var s1 *ClaireClass var try_16 EID if (m.Selector.Id() == Core.C_mClaire_nth_object.Id()) { @@ -1965,7 +1922,6 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC("-1]") F_Generate_cast_post_class(s1,s) - PRINC("") Result = EVOID }}}} } @@ -1985,7 +1941,6 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC("-1)") F_Generate_cast_post_class(C_any,s) - PRINC("") Result = EVOID }}} } else if ((p.Id() == C_add_I.Id()) && @@ -2024,7 +1979,6 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_cast_post_class(sbag,s) - PRINC("") Result = EVOID }}} } else { @@ -2037,7 +1991,6 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_cast_post_class(sbag,s) - PRINC("") Result = EVOID }}} } @@ -2055,11 +2008,10 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_native_post_class(s) - PRINC("") Result = EVOID }} } else { - var g0103I *ClaireBoolean + var g0104I *ClaireBoolean var try_22 EID { var v_and11 *ClaireBoolean @@ -2108,8 +2060,8 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C } if ErrorIn(try_22) {Result = try_22 } else { - g0103I = ToBoolean(OBJ(try_22)) - if (g0103I == CTRUE) { + g0104I = ToBoolean(OBJ(try_22)) + if (g0104I == CTRUE) { Result = F_Generate_cast_prefix_class(C_any,s) if !ErrorIn(Result) { F_Generate_preCore_ask_void() @@ -2121,7 +2073,6 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_cast_post_class(C_any,s) - PRINC("") Result = EVOID }}} } else if (m.Selector.Id() == Core.C_identical_ask.Id()) { @@ -2132,7 +2083,6 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_cast_post_class(C_boolean,s) - PRINC("") Result = EVOID }} } else if ((p.Id() == Core.C_inlineok_ask.Id()) && @@ -2164,7 +2114,6 @@ func F_Generate_inline_exp_go_producer3 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_object_post_class(C_any,s) - PRINC("") Result = EVOID }} } else { @@ -2198,7 +2147,7 @@ func F_Generate_inline_exp_go_producer4 (c *GenerateGoProducer ,self *Language.C { var a1 *ClaireAny = self.Args.At(1-1) { var a2 *ClaireAny = self.Args.At(2-1) { var a3 *ClaireAny = self.Args.At(3-1) - var g0104I *ClaireBoolean + var g0105I *ClaireBoolean var try_1 EID { var v_and6 *ClaireBoolean @@ -2235,8 +2184,8 @@ func F_Generate_inline_exp_go_producer4 (c *GenerateGoProducer ,self *Language.C } if ErrorIn(try_1) {Result = try_1 } else { - g0104I = ToBoolean(OBJ(try_1)) - if (g0104I == CTRUE) { + g0105I = ToBoolean(OBJ(try_1)) + if (g0105I == CTRUE) { Result = Core.F_CALL(C_Generate_g_expression,ARGS(a1.ToEID(),EID{C_list.Id(),0})) if !ErrorIn(Result) { PRINC(".") @@ -2264,10 +2213,7 @@ func F_Generate_inline_exp_go_producer4 (c *GenerateGoProducer ,self *Language.C Result = Core.F_CALL(C_Generate_g_expression,ARGS(a3.ToEID(),EID{arg_7.Id(),0})) } } - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}} + }}} } else if ((m.Id() == C_Generate__starnth_put_list_star.Value) || ((m.Id() == C_Generate__starnth_put_array_star.Value) || ((Optimize.C_compiler.Safety >= 3) && @@ -2284,7 +2230,6 @@ func F_Generate_inline_exp_go_producer4 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_cast_post_class(C_any,s) - PRINC("") Result = EVOID }}}} } else if ((m.Id() == C_Generate__starmake_list_star.Value) && @@ -2299,7 +2244,6 @@ func F_Generate_inline_exp_go_producer4 (c *GenerateGoProducer ,self *Language.C if !ErrorIn(Result) { PRINC(")") F_Generate_cast_post_class(C_list,s) - PRINC("") Result = EVOID }}} } else if ((m.Selector.Id() == C_add_slot.Id()) && @@ -2337,13 +2281,13 @@ func F_Generate_inline_exp_go_producer4 (c *GenerateGoProducer ,self *Language.C PRINC(",") { var arg_9 int var try_10 EID - var g0105I *ClaireBoolean + var g0106I *ClaireBoolean var try_11 EID try_11 = Optimize.F_Compile_can_throw_status_method(ToMethod(m)) if ErrorIn(try_11) {try_10 = try_11 } else { - g0105I = ToBoolean(OBJ(try_11)) - if (g0105I == CTRUE) { + g0106I = ToBoolean(OBJ(try_11)) + if (g0106I == CTRUE) { try_10 = EID{C__INT,IVAL(1)} } else { try_10 = EID{C__INT,IVAL(0)} @@ -2424,13 +2368,13 @@ func (c *GenerateGoProducer ) PrintExternalCall (self *Language.CallMethod ,s *C if (l.Length() > 4) { Optimize.C_OPT.Level = (Optimize.C_OPT.Level+1) } - var g0110I *ClaireBoolean + var g0111I *ClaireBoolean var try_2 EID try_2 = Optimize.F_Compile_can_throw_status_method(m) if ErrorIn(try_2) {Result = try_2 } else { - g0110I = ToBoolean(OBJ(try_2)) - if (g0110I == CTRUE) { + g0111I = ToBoolean(OBJ(try_2)) + if (g0111I == CTRUE) { sm = Optimize.C_EID Result = EID{sm.Id(),0} } else { @@ -2448,9 +2392,9 @@ func (c *GenerateGoProducer ) PrintExternalCall (self *Language.CallMethod ,s *C F_Generate_goMethod_method(m) PRINC("(") { var n int = 2 - { var g0108 int = l.Length() + { var g0109 int = l.Length() Result= EID{CFALSE.Id(),0} - for (n <= g0108) { + for (n <= g0109) { var loop_3 EID _ = loop_3 { @@ -2477,9 +2421,9 @@ func (c *GenerateGoProducer ) PrintExternalCall (self *Language.CallMethod ,s *C l = CNIL } { var n int = 1 - { var g0109 int = l.Length() + { var g0110 int = l.Length() Result= EID{CFALSE.Id(),0} - for (n <= g0109) { + for (n <= g0110) { var loop_4 EID _ = loop_4 { @@ -2562,38 +2506,38 @@ func F_Generate_bounded_expression_any (self *ClaireAny ,s *ClaireClass ) EID { // eid body s = void var Result EID if (self.Isa.IsIn(Language.C_Assign) == CTRUE) { - { var g0111 *Language.Assign = Language.To_Assign(self) + { var g0112 *Language.Assign = Language.To_Assign(self) PRINC("(") - Result = F_Generate_g_expression_any(g0111.Id(),s) + Result = F_Generate_g_expression_any(g0112.Id(),s) if !ErrorIn(Result) { PRINC(")") Result = EVOID } } } else if (C_integer.Id() == self.Isa.Id()) { - { var g0112 int = ToInteger(self).Value - if (g0112 < 0) { + { var g0113 int = ToInteger(self).Value + if (g0113 < 0) { PRINC("(") - Result = F_Generate_g_expression_integer(g0112,s) + Result = F_Generate_g_expression_integer(g0113,s) if !ErrorIn(Result) { PRINC(")") Result = EVOID } } else { - Result = F_Generate_g_expression_integer(g0112,s) + Result = F_Generate_g_expression_integer(g0113,s) } } } else if (C_float.Id() == self.Isa.Id()) { - { var g0113 float64 = ToFloat(self).Value - if (g0113 < 0) { + { var g0114 float64 = ToFloat(self).Value + if (g0114 < 0) { PRINC("(") - Result = F_Generate_g_expression_float(g0113,s) + Result = F_Generate_g_expression_float(g0114,s) if !ErrorIn(Result) { PRINC(")") Result = EVOID } } else { - Result = F_Generate_g_expression_float(g0113,s) + Result = F_Generate_g_expression_float(g0114,s) } } } else { @@ -2660,9 +2604,9 @@ func F_Generate_g_expression_And (self *Language.And ,s *ClaireClass ) EID { F_Generate_object_prefix_class(C_boolean,s) PRINC("MakeBoolean(") { var i int = 1 - { var g0117 int = n + { var g0118 int = n Result= EID{CFALSE.Id(),0} - for (i <= g0117) { + for (i <= g0118) { var loop_1 EID _ = loop_1 { @@ -2674,10 +2618,10 @@ func F_Generate_g_expression_And (self *Language.And ,s *ClaireClass ) EID { if (i < n) { PRINC(" && ") if (b == CTRUE) { - F_Generate_breakline_void() + loop_1 = F_Generate_breakline_void().ToEID() + } else { + loop_1 = EID{CFALSE.Id(),0} } - PRINC("") - loop_1 = EVOID } else { loop_1 = EID{CFALSE.Id(),0} } @@ -2715,9 +2659,9 @@ func F_Generate_g_expression_Or (self *Language.Or ,s *ClaireClass ) EID { F_Generate_object_prefix_class(C_boolean,s) PRINC("MakeBoolean(") { var i int = 1 - { var g0118 int = n + { var g0119 int = n Result= EID{CFALSE.Id(),0} - for (i <= g0118) { + for (i <= g0119) { var loop_1 EID _ = loop_1 { @@ -2729,10 +2673,10 @@ func F_Generate_g_expression_Or (self *Language.Or ,s *ClaireClass ) EID { if (i < n) { PRINC(" || ") if (b == CTRUE) { - F_Generate_breakline_void() + loop_1 = F_Generate_breakline_void().ToEID() + } else { + loop_1 = EID{CFALSE.Id(),0} } - PRINC("") - loop_1 = EVOID } else { loop_1 = EID{CFALSE.Id(),0} } @@ -2914,17 +2858,16 @@ func F_Generate_g_table_index_table (a *ClaireTable ,l *ClaireAny ) EID { var Result EID { var p *ClaireAny = a.Params if (C_integer.Id() == p.Isa.Id()) { - { var g0119 int = ToInteger(p).Value + { var g0120 int = ToInteger(p).Value Result = Core.F_CALL(C_Generate_g_expression,ARGS(l.ToEID(),EID{C_integer.Id(),0})) if !ErrorIn(Result) { PRINC(" - ") - F_princ_integer(g0119) - PRINC("") + F_princ_integer(g0120) Result = EVOID } } } else if (p.Isa.IsIn(C_list) == CTRUE) { - { var g0120 *ClaireList = ToList(p) + { var g0121 *ClaireList = ToList(p) if (l.Isa.IsIn(Language.C_List) != CTRUE) { Result = ToException(Core.C_general_error.Make(MakeString("shit with call_table ~S[~S]").Id(),MakeConstantList(a.Id(),l).Id())).Close() } else { @@ -2934,17 +2877,14 @@ func F_Generate_g_table_index_table (a *ClaireTable ,l *ClaireAny ) EID { Result = Core.F_CALL(C_Generate_g_expression,ARGS(ToList(OBJ(Core.F_CALL(C_args,ARGS(l.ToEID())))).At(1-1).ToEID(),EID{C_integer.Id(),0})) if !ErrorIn(Result) { PRINC(" * ") - Result = Core.F_CALL(C_princ,ARGS(g0120.At(1-1).ToEID())) + Result = Core.F_CALL(C_princ,ARGS(g0121.At(1-1).ToEID())) if !ErrorIn(Result) { PRINC(" + ") Result = Core.F_CALL(C_Generate_g_expression,ARGS(ToList(OBJ(Core.F_CALL(C_args,ARGS(l.ToEID())))).At(2-1).ToEID(),EID{C_integer.Id(),0})) if !ErrorIn(Result) { PRINC(" - ") - Result = Core.F_CALL(C_princ,ARGS(g0120.At(2-1).ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}} + Result = Core.F_CALL(C_princ,ARGS(g0121.At(2-1).ToEID())) + }}} } } } else { @@ -3193,8 +3133,8 @@ func F_Compile_bool_exp_And (self *Language.And ,pos_ask *ClaireBoolean ) EID { } if !ErrorIn(Result) { { var x int = 2 - { var g0123 int = m - for (x <= g0123) { + { var g0124 int = m + for (x <= g0124) { PRINC(")") x = (x+1) } @@ -3271,8 +3211,8 @@ func F_Compile_bool_exp_Or (self *Language.Or ,pos_ask *ClaireBoolean ) EID { } if !ErrorIn(Result) { { var x int = 2 - { var g0126 int = m - for (x <= g0126) { + { var g0127 int = m + for (x <= g0127) { PRINC(")") x = (x+1) } @@ -3329,7 +3269,7 @@ func E_Compile_bool_exp_Call (self EID,pos_ask EID) EID { func F_Generate_belong_exp_any (a1 *ClaireAny ,a2 *ClaireAny ,s *ClaireClass ) EID { // eid body s = void var Result EID - var g0127I *ClaireBoolean + var g0128I *ClaireBoolean var try_1 EID { var arg_2 *ClaireClass var try_3 EID @@ -3342,8 +3282,8 @@ func F_Generate_belong_exp_any (a1 *ClaireAny ,a2 *ClaireAny ,s *ClaireClass ) E } if ErrorIn(try_1) {Result = try_1 } else { - g0127I = ToBoolean(OBJ(try_1)) - if (g0127I == CTRUE) { + g0128I = ToBoolean(OBJ(try_1)) + if (g0128I == CTRUE) { Result = F_Generate_cast_prefix_class(C_boolean,s) if !ErrorIn(Result) { Result = Core.F_CALL(C_Generate_g_expression,ARGS(a2.ToEID(),EID{C_type.Id(),0})) @@ -3353,11 +3293,10 @@ func F_Generate_belong_exp_any (a1 *ClaireAny ,a2 *ClaireAny ,s *ClaireClass ) E if !ErrorIn(Result) { PRINC(")") F_Generate_cast_post_class(C_boolean,s) - PRINC("") Result = EVOID }}} } else { - var g0128I *ClaireBoolean + var g0129I *ClaireBoolean var try_4 EID { var v_and3 *ClaireBoolean @@ -3398,8 +3337,8 @@ func F_Generate_belong_exp_any (a1 *ClaireAny ,a2 *ClaireAny ,s *ClaireClass ) E } if ErrorIn(try_4) {Result = try_4 } else { - g0128I = ToBoolean(OBJ(try_4)) - if (g0128I == CTRUE) { + g0129I = ToBoolean(OBJ(try_4)) + if (g0129I == CTRUE) { Result = F_Generate_cast_prefix_class(C_boolean,s) if !ErrorIn(Result) { PRINC("BitVectorContains(") @@ -3410,11 +3349,10 @@ func F_Generate_belong_exp_any (a1 *ClaireAny ,a2 *ClaireAny ,s *ClaireClass ) E if !ErrorIn(Result) { PRINC(")") F_Generate_cast_post_class(C_boolean,s) - PRINC("") Result = EVOID }}} } else { - var g0129I *ClaireBoolean + var g0130I *ClaireBoolean var try_11 EID { var v_or4 *ClaireBoolean @@ -3455,8 +3393,8 @@ func F_Generate_belong_exp_any (a1 *ClaireAny ,a2 *ClaireAny ,s *ClaireClass ) E } if ErrorIn(try_11) {Result = try_11 } else { - g0129I = ToBoolean(OBJ(try_11)) - if (g0129I == CTRUE) { + g0130I = ToBoolean(OBJ(try_11)) + if (g0130I == CTRUE) { Result = F_Generate_cast_prefix_class(C_boolean,s) if !ErrorIn(Result) { Result = Core.F_CALL(C_Generate_g_expression,ARGS(a2.ToEID(),EID{C_list.Id(),0})) @@ -3466,7 +3404,6 @@ func F_Generate_belong_exp_any (a1 *ClaireAny ,a2 *ClaireAny ,s *ClaireClass ) E if !ErrorIn(Result) { PRINC(")") F_Generate_cast_post_class(C_boolean,s) - PRINC("") Result = EVOID }}} } else { @@ -3481,7 +3418,6 @@ func F_Generate_belong_exp_any (a1 *ClaireAny ,a2 *ClaireAny ,s *ClaireClass ) E if !ErrorIn(Result) { PRINC(")") F_Generate_cast_post_class(Optimize.C_EID,s) - PRINC("") Result = EVOID }}} } diff --git a/src/Generate/gogen.go b/src/Generate/gogen.go index bab16e7..528e9f6 100644 --- a/src/Generate/gogen.go +++ b/src/Generate/gogen.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/compile/gogen.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:21 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:45 *****/ package Generate import (_ "fmt" @@ -11,7 +11,7 @@ import (_ "fmt" ) //-------- dumb function to prevent import errors -------- -func import_g0038() { +func import_g0039() { _ = Core.It _ = Language.It _ = Reader.It @@ -417,7 +417,9 @@ func E_Generate_capitalize_symbol (s EID) EID { func (c *GenerateGoProducer ) GlobalVar (x *Core.GlobalVariable ) { // procedure body with s = void F_Generate_thing_ident_thing(ToThing(x.Id())) - PRINC(".Value") + if (Optimize.F_Compile_nativeVar_ask_global_variable(x) != CTRUE) { + PRINC(".Value") + } } // The EID go function for: globalVar @ go_producer (throw: false) @@ -425,6 +427,7 @@ func E_Generate_globalVar_go_producer (c EID,x EID) EID { ToGenerateGoProducer(OBJ(c)).GlobalVar(Core.ToGlobalVariable(OBJ(x)) ) return EVOID} +// do not forget optimized (native) global variables // the go expression that represents a global variable, as a string (reused for Gassign) // Five sorts in go : categories to distinguish between native, object, EID // x:object x, x, EID(x.Id(),0) @@ -530,12 +533,10 @@ func F_Generate_var_declaration_string (v *ClaireString ,s *ClaireClass ,mode in if (mode > 0) { F_Generate_breakline_void() } - PRINC("") if (mode == 2) { PRINC("_ = ") F_c_princ_string(v) F_Generate_breakline_void() - PRINC("") } } @@ -550,8 +551,8 @@ func F_imported_function_ask_any (f *ClaireAny ) *ClaireBoolean { // procedure body with s = boolean var Result *ClaireBoolean if (C_function.Id() == f.Isa.Id()) { - { var g0040 *ClaireFunction = ToFunction(f) - Result = Equal(MakeChar(F_string_I_function(g0040).At(1)).Id(),MakeChar('#').Id()) + { var g0041 *ClaireFunction = ToFunction(f) + Result = Equal(MakeChar(F_string_I_function(g0041).At(1)).Id(),MakeChar('#').Id()) } } else { Result = CFALSE @@ -575,9 +576,9 @@ func F_Generate_goMethod_ask_any (m *ClaireAny ) *ClaireBoolean { if (ToBoolean(ToGenerateGoProducer(Optimize.C_PRODUCER.Value).KernelMethods.Contain_ask(m).Id()) == CTRUE) { Result = CTRUE } else if (C_method.Id() == m.Isa.Id()) { - { var g0042 *ClaireMethod = ToMethod(m) - { var firstc rune = g0042.Selector.Name.String_I().At(1) - { var _Zsig *ClaireList = F_Generate_go_signature_method(g0042) + { var g0043 *ClaireMethod = ToMethod(m) + { var firstc rune = g0043.Selector.Name.String_I().At(1) + { var _Zsig *ClaireList = F_Generate_go_signature_method(g0043) { var c *ClaireClass = ToClass(_Zsig.ValuesO()[1-1]) { var v_and7 *ClaireBoolean @@ -594,13 +595,13 @@ func F_Generate_goMethod_ask_any (m *ClaireAny ) *ClaireBoolean { v_and7 = MakeBoolean((ToType(c.Id()).Included(ToType(C_object.Id())) == CTRUE) || (c.Id() == C_port.Id()) || (c.Id() == C_environment.Id())) if (v_and7 == CFALSE) {Result = CFALSE } else { - v_and7 = Equal(g0042.Module_I.Id(),c.Name.Defined().Id()) + v_and7 = Equal(g0043.Module_I.Id(),c.Name.Defined().Id()) if (v_and7 == CFALSE) {Result = CFALSE } else { - v_and7 = MakeBoolean((g0042.Selector.IfWrite == CNULL)) + v_and7 = MakeBoolean((g0043.Selector.IfWrite == CNULL)) if (v_and7 == CFALSE) {Result = CFALSE } else { - v_and7 = MakeBoolean((g0042.Functional.Id() == CNULL) || (F_imported_function_ask_any(g0042.Functional.Id()) != CTRUE)) + v_and7 = MakeBoolean((g0043.Functional.Id() == CNULL) || (F_imported_function_ask_any(g0043.Functional.Id()) != CTRUE)) if (v_and7 == CFALSE) {Result = CFALSE } else { { var arg_1 *ClaireAny @@ -609,17 +610,17 @@ func F_Generate_goMethod_ask_any (m *ClaireAny ) *ClaireBoolean { _ = m2 var m2_iter *ClaireAny arg_1= CFALSE.Id() - for _,m2_iter = range(g0042.Selector.Restrictions.ValuesO()){ + for _,m2_iter = range(g0043.Selector.Restrictions.ValuesO()){ m2 = ToRestriction(m2_iter) - var g0046I *ClaireBoolean + var g0047I *ClaireBoolean { var arg_2 *ClaireBoolean if (C_method.Id() == m2.Isa.Id()) { - { var g0043 *ClaireMethod = ToMethod(m2.Id()) - if (C_class.Id() != g0043.Domain.ValuesO()[1-1].Isa.Id()) { + { var g0044 *ClaireMethod = ToMethod(m2.Id()) + if (C_class.Id() != g0044.Domain.ValuesO()[1-1].Isa.Id()) { arg_2 = CFALSE - } else if ((g0043.Module_I.Id() == g0042.Module_I.Id()) && - (Equal(Core.F__exp_type(ToType(c.Id()),ToType(g0043.Domain.ValuesO()[1-1])).Id(),CEMPTY.Id()) != CTRUE)) { - arg_2 = F_Generate_arg_match_list(F_Generate_go_signature_method(g0043),_Zsig) + } else if ((g0044.Module_I.Id() == g0043.Module_I.Id()) && + (Equal(Core.F__exp_type(ToType(c.Id()),ToType(g0044.Domain.ValuesO()[1-1])).Id(),CEMPTY.Id()) != CTRUE)) { + arg_2 = F_Generate_arg_match_list(F_Generate_go_signature_method(g0044),_Zsig) } else { arg_2 = CTRUE } @@ -627,9 +628,9 @@ func F_Generate_goMethod_ask_any (m *ClaireAny ) *ClaireBoolean { } else { arg_2 = CTRUE } - g0046I = arg_2.Not + g0047I = arg_2.Not } - if (g0046I == CTRUE) { + if (g0047I == CTRUE) { arg_1 = CTRUE.Id() break } @@ -723,7 +724,7 @@ func F_dMethod_ask_any (m *ClaireAny ) EID { m2 = ToRestriction(m2_iter) var loop_8 EID _ = loop_8 - var g0049I *ClaireBoolean + var g0050I *ClaireBoolean var try_9 EID { var arg_10 *ClaireBoolean var try_11 EID @@ -738,10 +739,10 @@ func F_dMethod_ask_any (m *ClaireAny ) EID { }} if !ErrorIn(try_11) { if (C_method.Id() == m2.Isa.Id()) { - { var g0047 *ClaireMethod = ToMethod(m2.Id()) - if ((g0047.Module_I.Id() == ANY(Core.F_CALL(C_module_I,ARGS(m.ToEID())))) && - (Equal(Core.F__exp_type(ToType(c.Id()),ToType(g0047.Domain.ValuesO()[1-1])).Id(),CEMPTY.Id()) != CTRUE)) { - try_11 = EID{F_Generate_arg_match_list(F_Generate_go_signature_method(g0047),_Zsig).Id(),0} + { var g0048 *ClaireMethod = ToMethod(m2.Id()) + if ((g0048.Module_I.Id() == ANY(Core.F_CALL(C_module_I,ARGS(m.ToEID())))) && + (Equal(Core.F__exp_type(ToType(c.Id()),ToType(g0048.Domain.ValuesO()[1-1])).Id(),CEMPTY.Id()) != CTRUE)) { + try_11 = EID{F_Generate_arg_match_list(F_Generate_go_signature_method(g0048),_Zsig).Id(),0} } else { try_11 = EID{CTRUE.Id(),0} } @@ -758,8 +759,8 @@ func F_dMethod_ask_any (m *ClaireAny ) EID { } if ErrorIn(try_9) {loop_8 = try_9 } else { - g0049I = ToBoolean(OBJ(try_9)) - if (g0049I == CTRUE) { + g0050I = ToBoolean(OBJ(try_9)) + if (g0050I == CTRUE) { try_7 = EID{CTRUE.Id(),0} break } else { @@ -813,9 +814,9 @@ func F_Generate_arg_match_list (l1 *ClaireList ,l2 *ClaireList ) *ClaireBoolean } else { { var arg_1 *ClaireAny { var i int = 2 - { var g0050 int = (n-1) + { var g0051 int = (n-1) arg_1= CFALSE.Id() - for (i <= g0050) { + for (i <= g0051) { if (l1.ValuesO()[i-1] != l2.ValuesO()[i-1]) { arg_1 = CTRUE.Id() break @@ -933,7 +934,6 @@ func (p *GenerateGoProducer ) GoVariable (v *ClaireVariable ) { F_iClaire_ident_go_producer1(p,v) PRINC(" ") F_Generate_interface_I_class(v.Range.Class_I()) - PRINC("") } // The EID go function for: goVariable @ go_producer (throw: false) @@ -1055,7 +1055,6 @@ func F_Generate_goEIDFunctionName_method (m *ClaireMethod ) EID { f = ToString(OBJ(try_1)) PRINC("E_") F_c_princ_string(f) - PRINC("") Result = EVOID } } @@ -1073,7 +1072,6 @@ func F_Generate_goEvalFunction_method (m *ClaireMethod ) { { var c *ClaireClass = Core.F_domain_I_restriction(ToRestriction(m.Id())) PRINC(",EVAL_") c.Name.CPrinc() - PRINC("") } } @@ -1118,7 +1116,7 @@ func F_Generate_retreive_method_any (p *ClaireAny ,lf *ClaireAny ) EID { // eid body s = method var Result EID if (p.Isa.IsIn(C_property) == CTRUE) { - { var g0051 *ClaireProperty = ToProperty(p) + { var g0052 *ClaireProperty = ToProperty(p) { var m *ClaireObject var try_1 EID { var arg_2 *ClaireAny @@ -1127,18 +1125,18 @@ func F_Generate_retreive_method_any (p *ClaireAny ,lf *ClaireAny ) EID { if ErrorIn(try_3) {try_1 = try_3 } else { arg_2 = ANY(try_3) - try_1 = Core.F_CALL(ToProperty(Core.C__at.Id()),ARGS(EID{g0051.Id(),0},arg_2.ToEID())) + try_1 = Core.F_CALL(ToProperty(Core.C__at.Id()),ARGS(EID{g0052.Id(),0},arg_2.ToEID())) } } if ErrorIn(try_1) {Result = try_1 } else { m = ToObject(OBJ(try_1)) if (C_method.Id() == m.Isa.Id()) { - { var g0052 *ClaireMethod = ToMethod(m.Id()) - Result = EID{g0052.Id(),0} + { var g0053 *ClaireMethod = ToMethod(m.Id()) + Result = EID{g0053.Id(),0} } } else { - Result = ToException(Core.C_general_error.Make(MakeString("there is no method ~S @ ~S").Id(),MakeConstantList(g0051.Id(),lf).Id())).Close() + Result = ToException(Core.C_general_error.Make(MakeString("there is no method ~S @ ~S").Id(),MakeConstantList(g0052.Id(),lf).Id())).Close() } } } @@ -1158,32 +1156,32 @@ func F_Generate_retreive_list_any (x *ClaireAny ) EID { // eid body s = any var Result EID if (x.Isa.IsIn(C_type) == CTRUE) { - { var g0055 *ClaireType = ToType(x) - Result = EID{g0055.Id(),0} + { var g0056 *ClaireType = ToType(x) + Result = EID{g0056.Id(),0} } } else if (C_integer.Id() == x.Isa.Id()) { - { var g0056 int = ToInteger(x).Value - Result = EID{C__INT,IVAL(g0056)} + { var g0057 int = ToInteger(x).Value + Result = EID{C__INT,IVAL(g0057)} } } else if (x.Isa.IsIn(C_property) == CTRUE) { - { var g0057 *ClaireProperty = ToProperty(x) - Result = EID{g0057.Id(),0} + { var g0058 *ClaireProperty = ToProperty(x) + Result = EID{g0058.Id(),0} } } else if (x.Isa.IsIn(Core.C_global_variable) == CTRUE) { - { var g0058 *Core.GlobalVariable = Core.ToGlobalVariable(x) - if (Equal(g0058.Range.Id(),CEMPTY.Id()) == CTRUE) { - Result = F_Generate_retreive_list_any(g0058.Value) + { var g0059 *Core.GlobalVariable = Core.ToGlobalVariable(x) + if (Equal(g0059.Range.Id(),CEMPTY.Id()) == CTRUE) { + Result = F_Generate_retreive_list_any(g0059.Value) } else { - Result = ToException(Core.C_general_error.Make(MakeString("we cannot retreive a type from a variable ~S").Id(),MakeConstantList(g0058.Id()).Id())).Close() + Result = ToException(Core.C_general_error.Make(MakeString("we cannot retreive a type from a variable ~S").Id(),MakeConstantList(g0059.Id()).Id())).Close() } } } else if (x.Isa.IsIn(Language.C_List) == CTRUE) { - { var g0059 *Language.List = Language.To_List(x) + { var g0060 *Language.List = Language.To_List(x) { var v_list4 *ClaireList var y *ClaireAny var v_local4 *ClaireAny - v_list4 = g0059.Args + v_list4 = g0060.Args Result = EID{CreateList(ToType(CEMPTY.Id()),v_list4.Length()).Id(),0} for CLcount := 0; CLcount < v_list4.Length(); CLcount++{ y = v_list4.At(CLcount) @@ -1199,14 +1197,14 @@ func F_Generate_retreive_list_any (x *ClaireAny ) EID { } } } else if (x.Isa.IsIn(Language.C_Tuple) == CTRUE) { - { var g0060 *Language.Tuple = Language.To_Tuple(x) + { var g0061 *Language.Tuple = Language.To_Tuple(x) { var arg_2 *ClaireList var try_3 EID { var v_list5 *ClaireList var y *ClaireAny var v_local5 *ClaireAny - v_list5 = g0060.Args + v_list5 = g0061.Args try_3 = EID{CreateList(ToType(CEMPTY.Id()),v_list5.Length()).Id(),0} for CLcount := 0; CLcount < v_list5.Length(); CLcount++{ y = v_list5.At(CLcount) @@ -1228,18 +1226,18 @@ func F_Generate_retreive_list_any (x *ClaireAny ) EID { } } } else if (x.Isa.IsIn(Language.C_Call_method) == CTRUE) { - { var g0061 *Language.CallMethod = Language.To_CallMethod(x) - if ((g0061.Arg.Selector.Id() == C_nth.Id()) && - (g0061.Args.Length() == 2)) { + { var g0062 *Language.CallMethod = Language.To_CallMethod(x) + if ((g0062.Arg.Selector.Id() == C_nth.Id()) && + (g0062.Args.Length() == 2)) { { var arg_5 *ClaireAny var try_7 EID - try_7 = F_Generate_retreive_list_any(g0061.Args.At(1-1)) + try_7 = F_Generate_retreive_list_any(g0062.Args.At(1-1)) if ErrorIn(try_7) {Result = try_7 } else { arg_5 = ANY(try_7) { var arg_6 *ClaireAny var try_8 EID - try_8 = F_Generate_retreive_list_any(g0061.Args.At(2-1)) + try_8 = F_Generate_retreive_list_any(g0062.Args.At(2-1)) if ErrorIn(try_8) {Result = try_8 } else { arg_6 = ANY(try_8) @@ -1248,23 +1246,23 @@ func F_Generate_retreive_list_any (x *ClaireAny ) EID { } } } - } else if ((g0061.Arg.Selector.Id() == C_nth.Id()) && - (g0061.Args.Length() == 3)) { + } else if ((g0062.Arg.Selector.Id() == C_nth.Id()) && + (g0062.Args.Length() == 3)) { { var arg_9 *ClaireAny var try_12 EID - try_12 = F_Generate_retreive_list_any(g0061.Args.At(1-1)) + try_12 = F_Generate_retreive_list_any(g0062.Args.At(1-1)) if ErrorIn(try_12) {Result = try_12 } else { arg_9 = ANY(try_12) { var arg_10 *ClaireAny var try_13 EID - try_13 = F_Generate_retreive_list_any(g0061.Args.At(2-1)) + try_13 = F_Generate_retreive_list_any(g0062.Args.At(2-1)) if ErrorIn(try_13) {Result = try_13 } else { arg_10 = ANY(try_13) { var arg_11 *ClaireAny var try_14 EID - try_14 = F_Generate_retreive_list_any(g0061.Args.At(3-1)) + try_14 = F_Generate_retreive_list_any(g0062.Args.At(3-1)) if ErrorIn(try_14) {Result = try_14 } else { arg_11 = ANY(try_14) @@ -1275,17 +1273,17 @@ func F_Generate_retreive_list_any (x *ClaireAny ) EID { } } } - } else if ((g0061.Arg.Selector.Id() == Core.C_Core_param_I.Id()) && - (g0061.Args.Length() == 2)) { + } else if ((g0062.Arg.Selector.Id() == Core.C_Core_param_I.Id()) && + (g0062.Args.Length() == 2)) { { var arg_15 *ClaireAny var try_17 EID - try_17 = F_Generate_retreive_list_any(g0061.Args.At(1-1)) + try_17 = F_Generate_retreive_list_any(g0062.Args.At(1-1)) if ErrorIn(try_17) {Result = try_17 } else { arg_15 = ANY(try_17) { var arg_16 *ClaireAny var try_18 EID - try_18 = F_Generate_retreive_list_any(g0061.Args.At(2-1)) + try_18 = F_Generate_retreive_list_any(g0062.Args.At(2-1)) if ErrorIn(try_18) {Result = try_18 } else { arg_16 = ANY(try_18) @@ -1294,17 +1292,17 @@ func F_Generate_retreive_list_any (x *ClaireAny ) EID { } } } - } else if ((g0061.Arg.Selector.Id() == Core.C_U.Id()) && - (g0061.Args.Length() == 2)) { + } else if ((g0062.Arg.Selector.Id() == Core.C_U.Id()) && + (g0062.Args.Length() == 2)) { { var arg_19 *ClaireAny var try_21 EID - try_21 = F_Generate_retreive_list_any(g0061.Args.At(1-1)) + try_21 = F_Generate_retreive_list_any(g0062.Args.At(1-1)) if ErrorIn(try_21) {Result = try_21 } else { arg_19 = ANY(try_21) { var arg_20 *ClaireAny var try_22 EID - try_22 = F_Generate_retreive_list_any(g0061.Args.At(2-1)) + try_22 = F_Generate_retreive_list_any(g0062.Args.At(2-1)) if ErrorIn(try_22) {Result = try_22 } else { arg_20 = ANY(try_22) @@ -1313,17 +1311,17 @@ func F_Generate_retreive_list_any (x *ClaireAny ) EID { } } } - } else if ((g0061.Arg.Selector.Id() == C__dot_dot.Id()) && - (g0061.Args.Length() == 2)) { + } else if ((g0062.Arg.Selector.Id() == C__dot_dot.Id()) && + (g0062.Args.Length() == 2)) { { var arg_23 *ClaireAny var try_25 EID - try_25 = F_Generate_retreive_list_any(g0061.Args.At(1-1)) + try_25 = F_Generate_retreive_list_any(g0062.Args.At(1-1)) if ErrorIn(try_25) {Result = try_25 } else { arg_23 = ANY(try_25) { var arg_24 *ClaireAny var try_26 EID - try_26 = F_Generate_retreive_list_any(g0061.Args.At(2-1)) + try_26 = F_Generate_retreive_list_any(g0062.Args.At(2-1)) if ErrorIn(try_26) {Result = try_26 } else { arg_24 = ANY(try_26) @@ -1333,7 +1331,7 @@ func F_Generate_retreive_list_any (x *ClaireAny ) EID { } } } else { - Result = ToException(Core.C_general_error.Make(MakeString("we need to extend retreive_list to handle a type call: ~S").Id(),MakeConstantList(g0061.Id()).Id())).Close() + Result = ToException(Core.C_general_error.Make(MakeString("we need to extend retreive_list to handle a type call: ~S").Id(),MakeConstantList(g0062.Id()).Id())).Close() } } } else { @@ -1788,7 +1786,7 @@ func E_Generate_cast_post_class (s1 EID,s2 EID) EID { func (c *GenerateGoProducer ) EqualExp (a1 *ClaireAny ,pos_ask *ClaireBoolean ,a2 *ClaireAny ,id_ask *ClaireAny ) EID { // eid body s = void var Result EID - var g0063I *ClaireBoolean + var g0064I *ClaireBoolean var try_1 EID { var v_and2 *ClaireBoolean @@ -1829,8 +1827,8 @@ func (c *GenerateGoProducer ) EqualExp (a1 *ClaireAny ,pos_ask *ClaireBoolean ,a } if ErrorIn(try_1) {Result = try_1 } else { - g0063I = ToBoolean(OBJ(try_1)) - if (g0063I == CTRUE) { + g0064I = ToBoolean(OBJ(try_1)) + if (g0064I == CTRUE) { PRINC("(") Result = Core.F_CALL(C_Generate_g_expression,ARGS(a1.ToEID(),EID{C_string.Id(),0})) if !ErrorIn(Result) { @@ -1856,7 +1854,7 @@ func (c *GenerateGoProducer ) EqualExp (a1 *ClaireAny ,pos_ask *ClaireBoolean ,a Result = EVOID }} } else { - var g0064I *ClaireBoolean + var g0065I *ClaireBoolean var try_8 EID { var v_and3 *ClaireBoolean @@ -1937,9 +1935,9 @@ func (c *GenerateGoProducer ) EqualExp (a1 *ClaireAny ,pos_ask *ClaireBoolean ,a } if ErrorIn(try_8) {Result = try_8 } else { - g0064I = ToBoolean(OBJ(try_8)) - if (g0064I == CTRUE) { - var g0065I *ClaireBoolean + g0065I = ToBoolean(OBJ(try_8)) + if (g0065I == CTRUE) { + var g0066I *ClaireBoolean var try_20 EID { var arg_21 *ClaireType var try_22 EID @@ -1968,8 +1966,8 @@ func (c *GenerateGoProducer ) EqualExp (a1 *ClaireAny ,pos_ask *ClaireBoolean ,a } if ErrorIn(try_20) {Result = try_20 } else { - g0065I = ToBoolean(OBJ(try_20)) - if (g0065I == CTRUE) { + g0066I = ToBoolean(OBJ(try_20)) + if (g0066I == CTRUE) { Optimize.F_Compile_warn_void() Result = Core.F_tformat_string(MakeString("~S = ~S will fail ! [263]"),1,MakeConstantList(a1,a2)) } else { @@ -2006,7 +2004,7 @@ func (c *GenerateGoProducer ) EqualExp (a1 *ClaireAny ,pos_ask *ClaireBoolean ,a }} } } else { - var g0066I *ClaireBoolean + var g0067I *ClaireBoolean var try_31 EID { var arg_32 *ClaireClass var try_33 EID @@ -2019,8 +2017,8 @@ func (c *GenerateGoProducer ) EqualExp (a1 *ClaireAny ,pos_ask *ClaireBoolean ,a } if ErrorIn(try_31) {Result = try_31 } else { - g0066I = ToBoolean(OBJ(try_31)) - if (g0066I == CTRUE) { + g0067I = ToBoolean(OBJ(try_31)) + if (g0067I == CTRUE) { if (pos_ask != CTRUE) { PRINC("!") } @@ -2068,8 +2066,8 @@ func (c *GenerateGoProducer ) CharExp_ask (x *ClaireAny ) *ClaireBoolean { if (C_char.Id() == x.Isa.Id()) { Result = CTRUE } else if (x.Isa.IsIn(Language.C_Call_method) == CTRUE) { - { var g0068 *Language.CallMethod = Language.To_CallMethod(x) - { var m *ClaireMethod = g0068.Arg + { var g0069 *Language.CallMethod = Language.To_CallMethod(x) + { var m *ClaireMethod = g0069.Arg Result = MakeBoolean((m.Id() == C_Generate__starnth_1_string_star.Value) || ((m.Id() == C_Generate__starnth_string_star.Value) && (Optimize.C_compiler.Safety >= 2))) } @@ -2092,7 +2090,6 @@ func (c *GenerateGoProducer ) CMember (self *ClaireAny ,s *ClaireClass ,x *Clair if !ErrorIn(Result) { PRINC(".") F_Generate_cap_short_symbol(x.Name) - PRINC("") Result = EVOID } return Result} @@ -2187,15 +2184,15 @@ func E_Generate_bag_expression_go_producer (c EID,cl EID,l EID,t EID) EID { // a constant can be evaluated with no cost in an IfThenElse(test,a,b) /* The go function for: constant?(self:any) [status=0] */ func F_Generate_constant_ask_any (self *ClaireAny ) *ClaireBoolean { - if ((self.Isa.IsIn(C_thing) == CTRUE) || - ((C_boolean.Id() == self.Isa.Id()) || - ((self.Isa.IsIn(C_Variable) == CTRUE) || - ((C_string.Id() == self.Isa.Id()) || - ((self == CNULL) || - ((Equal(self,CNIL.Id()) == CTRUE) || - ((Equal(self,CEMPTY.Id()) == CTRUE) || - (self.Isa.IsIn(Core.C_global_variable) == CTRUE)))))))) {return CTRUE - } else {return CFALSE}} + return MakeBoolean((self.Isa.IsIn(C_thing) == CTRUE) || + (C_boolean.Id() == self.Isa.Id()) || + (self.Isa.IsIn(C_Variable) == CTRUE) || + (C_string.Id() == self.Isa.Id()) || + (self == CNULL) || + (Equal(self,CNIL.Id()) == CTRUE) || + (Equal(self,CEMPTY.Id()) == CTRUE) || + (self.Isa.IsIn(Core.C_global_variable) == CTRUE)) + } // The EID go function for: constant? @ any (throw: false) func E_Generate_constant_ask_any (self EID) EID { @@ -2452,7 +2449,7 @@ func E_Generate_g_clean_any (x EID) EID { func F_Generate_simple_func_ask_any (x *ClaireAny ) EID { // eid body s = boolean var Result EID - var g0070I *ClaireBoolean + var g0071I *ClaireBoolean var try_1 EID { var v_and2 *ClaireBoolean @@ -2485,8 +2482,8 @@ func F_Generate_simple_func_ask_any (x *ClaireAny ) EID { } if ErrorIn(try_1) {Result = try_1 } else { - g0070I = ToBoolean(OBJ(try_1)) - if (g0070I == CTRUE) { + g0071I = ToBoolean(OBJ(try_1)) + if (g0071I == CTRUE) { Result = EID{CTRUE.Id(),0} } else { Result = EID{CFALSE.Id(),0} diff --git a/src/Generate/gomain.go b/src/Generate/gomain.go index d870b36..d0d6b9c 100644 --- a/src/Generate/gomain.go +++ b/src/Generate/gomain.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/compile/gomain.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:21 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:45 *****/ package Generate import (_ "fmt" @@ -11,7 +11,7 @@ import (_ "fmt" ) //-------- dumb function to prevent import errors -------- -func import_g0203() { +func import_g0204() { _ = Core.It _ = Language.It _ = Reader.It @@ -62,8 +62,8 @@ func F_Generate_string2module_string (s *ClaireString ) EID { var Result EID { var m *ClaireAny = F_value_string(s) if (m.Isa.IsIn(C_module) == CTRUE) { - { var g0204 *ClaireModule = ToModule(m) - Result = EID{g0204.Id(),0} + { var g0205 *ClaireModule = ToModule(m) + Result = EID{g0205.Id(),0} } } else { Result = ToException(Core.C_general_error.Make(MakeString("~A is not a module").Id(),MakeConstantList((s).Id()).Id())).Close() @@ -629,16 +629,12 @@ func F_Generate_load_function_module (m *ClaireModule ,l_necessary *ClaireList ) } PRINC("\n//load function : create and load modules") F_Generate_breakline_void() - PRINC("") PRINC("func Load() ") F_Generate_new_block_void() - PRINC("") PRINC("It := C_claire") F_Generate_breakline_void() - PRINC("") PRINC("//module definitions ") F_Generate_breakline_void() - PRINC("") { var x *ClaireAny _ = x @@ -709,9 +705,7 @@ func F_Generate_load_function_module (m *ClaireModule ,l_necessary *ClaireList ) break } else { PRINC(")") - F_Generate_breakline_void() - PRINC("") - loop_1 = EVOID + loop_1 = F_Generate_breakline_void().ToEID() }}}}}} } else { loop_1 = EID{CFALSE.Id(),0} @@ -726,7 +720,6 @@ func F_Generate_load_function_module (m *ClaireModule ,l_necessary *ClaireList ) F_Generate_breakline_void() PRINC("// module load ") F_Generate_breakline_void() - PRINC("") { var x *ClaireAny _ = x @@ -740,7 +733,6 @@ func F_Generate_load_function_module (m *ClaireModule ,l_necessary *ClaireList ) Core.F_CALL(Language.C_iClaire_ident,ARGS(Core.F_CALL(C_name,ARGS(x.ToEID())))) PRINC(".MetaLoad()") F_Generate_breakline_void() - PRINC("") } } } @@ -786,18 +778,14 @@ func F_Generate_load_function_module (m *ClaireModule ,l_necessary *ClaireList ) if ErrorIn(loop_8) {Result = loop_8 break } else { - F_Generate_breakline_void() - PRINC("") - loop_8 = EVOID + loop_8 = F_Generate_breakline_void().ToEID() } if ErrorIn(loop_8) {Result = loop_8 break } else { Core.F_CALL(Language.C_iClaire_ident,ARGS(Core.F_CALL(C_name,ARGS(x.ToEID())))) PRINC(".it->status = 2;") - F_Generate_breakline_void() - PRINC("") - loop_8 = EVOID + loop_8 = F_Generate_breakline_void().ToEID() } } else { loop_8 = EID{CFALSE.Id(),0} @@ -813,9 +801,7 @@ func F_Generate_load_function_module (m *ClaireModule ,l_necessary *ClaireList ) Result = F_Generate_g_expression_module(m,C_module) if !ErrorIn(Result) { PRINC("; ") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } if !ErrorIn(Result) { F_Generate_close_block_void() @@ -835,10 +821,8 @@ func F_Generate_main_function_module (m *ClaireModule ,l_used *ClaireList ,_Zmai PRINC("\n// the main function \n") PRINC("func main() ") F_Generate_new_block_void() - PRINC("") PRINC("MemoryFlags()") F_Generate_breakline_void() - PRINC("") if (Optimize.C_OPT.Profile_ask == CTRUE) { PRINC("// instruction for GO profiling - to be used with go tool pprof \n") F_Generate_new_block_void() @@ -846,7 +830,6 @@ func F_Generate_main_function_module (m *ClaireModule ,l_used *ClaireList ,_Zmai F_princ_string(m.Name.String_I()) PRINC(".prof\")") F_Generate_breakline_void() - PRINC("") PRINC("if err == nil ") F_Generate_new_block_void() PRINC("pprof.StartCPUProfile(f)") @@ -857,18 +840,14 @@ func F_Generate_main_function_module (m *ClaireModule ,l_used *ClaireList ,_Zmai } PRINC("Bootstrap()") F_Generate_breakline_void() - PRINC("") PRINC("Load()") F_Generate_breakline_void() - PRINC("") if (ToBoolean(l_used.Contain_ask(F_value_string(MakeString("Generate"))).Id()) == CTRUE) { PRINC("ClEnv.Module_I = C_claire") F_Generate_breakline_void() - PRINC("") } PRINC("Reader.C_reader.Fromp = ClEnv.Cin") F_Generate_breakline_void() - PRINC("") if (_Zmain == CTRUE) { PRINC("Core.F_CALL(Core.C_main,ARGS(EID{ClEnv.Id(),0}))") } else if (ToBoolean(l_used.Contain_ask(F_value_string(MakeString("Generate"))).Id()) == CTRUE) { @@ -893,7 +872,7 @@ func E_Generate_main_function_module (m EID,l_used EID,_Zmain EID) EID { func F_Generate_compile_dir_module (m *ClaireModule ) { // procedure body with s = void { var s *ClaireString = Reader.F__7_string(MakeString("mkdir -p src"),F_Generate_capitalize_string(m.Name.String_I())) - Core.F_tformat_string(MakeString("ask shell : ~S \n"),0,MakeConstantList((s).Id())) + F_claire_shell(s) } } @@ -908,7 +887,7 @@ func E_Generate_compile_dir_module (m EID) EID { func F_Generate_compile_exe_string (_Zout *ClaireString ) { // procedure body with s = void { var s *ClaireString = F_append_string(Reader.F__7_string(MakeString("go build src"),_Zout),MakeString(".go")) - Core.F_tformat_string(MakeString("ask shell : ~S \n"),0,MakeConstantList((s).Id())) + F_claire_shell(s) } } diff --git a/src/Generate/gostat.go b/src/Generate/gostat.go index 6de280c..def0f63 100644 --- a/src/Generate/gostat.go +++ b/src/Generate/gostat.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/compile/gostat.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:21 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:45 *****/ package Generate import (_ "fmt" @@ -11,7 +11,7 @@ import (_ "fmt" ) //-------- dumb function to prevent import errors -------- -func import_g0130() { +func import_g0131() { _ = Core.It _ = Language.It _ = Reader.It @@ -70,13 +70,13 @@ func F_Generate_unfold_args_list (l *ClaireList ) EID { var try_1 EID { var i_out *ClaireList = ToType(CEMPTY.Id()).EmptyList() { var i int = 1 - { var g0131 int = l.Length() + { var g0132 int = l.Length() try_1= EID{CFALSE.Id(),0} - for (i <= g0131) { + for (i <= g0132) { var loop_2 EID _ = loop_2 { - var g0132I *ClaireBoolean + var g0133I *ClaireBoolean var try_3 EID { var arg_4 *ClaireBoolean var try_5 EID @@ -89,8 +89,8 @@ func F_Generate_unfold_args_list (l *ClaireList ) EID { } if ErrorIn(try_3) {loop_2 = try_3 } else { - g0132I = ToBoolean(OBJ(try_3)) - if (g0132I == CTRUE) { + g0133I = ToBoolean(OBJ(try_3)) + if (g0133I == CTRUE) { loop_2 = EID{i_out.AddFast(MakeInteger(i).Id()).Id(),0} } else { loop_2 = EID{CFALSE.Id(),0} @@ -176,14 +176,14 @@ func F_Generate_unfold_arg_list (l *ClaireList ,ld *ClaireList ,x *ClaireAny ) E { var i int = 1 { var j int = 0 { var m int = l.Length() - var g0133I *ClaireBoolean + var g0134I *ClaireBoolean var try_1 EID try_1= EID{CFALSE.Id(),0} for (i <= m) { var loop_2 EID _ = loop_2 { - var g0134I *ClaireBoolean + var g0135I *ClaireBoolean var try_3 EID { var arg_4 *ClaireBoolean var try_5 EID @@ -196,8 +196,8 @@ func F_Generate_unfold_arg_list (l *ClaireList ,ld *ClaireList ,x *ClaireAny ) E } if ErrorIn(try_3) {loop_2 = try_3 } else { - g0134I = ToBoolean(OBJ(try_3)) - if (g0134I == CTRUE) { + g0135I = ToBoolean(OBJ(try_3)) + if (g0135I == CTRUE) { j = (j+1) if (Equal(l.At(i-1),x) == CTRUE) { try_1 = EID{CTRUE.Id(),0} @@ -221,8 +221,8 @@ func F_Generate_unfold_arg_list (l *ClaireList ,ld *ClaireList ,x *ClaireAny ) E } if ErrorIn(try_1) {Result = try_1 } else { - g0133I = ToBoolean(OBJ(try_1)) - if (g0133I == CTRUE) { + g0134I = ToBoolean(OBJ(try_1)) + if (g0134I == CTRUE) { Result = Core.F_CALL(Language.C_var,ARGS(ld.At(j-1).ToEID())) } else { Result = l.At(i-1).ToEID() @@ -262,9 +262,9 @@ func F_Generate_unfold_use_list (ldef *ClaireList ,x *ClaireAny ,s *ClaireClass } if !ErrorIn(Result) { { var i int = 1 - { var g0135 int = (n-1) + { var g0136 int = (n-1) Result= EID{CFALSE.Id(),0} - for (i <= g0135) { + for (i <= g0136) { var loop_1 EID _ = loop_1 { @@ -333,9 +333,7 @@ func F_Generate_g_try_any (self *ClaireAny ,v *ClaireString ,e *ClaireClass ,vgl Result = Core.F_CALL(C_print,ARGS(loop.ToEID())) if !ErrorIn(Result) { PRINC(") */") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() }} } else { Result = EID{CFALSE.Id(),0} @@ -350,9 +348,7 @@ func F_Generate_g_try_any (self *ClaireAny ,v *ClaireString ,e *ClaireClass ,vgl if ((self.Isa.IsIn(Language.C_Do) == CTRUE) && (loop.Isa.IsIn(Language.C_Tuple) == CTRUE)) { PRINC("{") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } else { if (ToGenerateGoProducer(Optimize.C_PRODUCER.Value).Debug_ask == CTRUE) { PRINC("/* ERROR PROTECTION INSERTED (") @@ -361,7 +357,6 @@ func F_Generate_g_try_any (self *ClaireAny ,v *ClaireString ,e *ClaireClass ,vgl F_princ_string(vglobal) PRINC(") */") F_Generate_breakline_void() - PRINC("") } if ((v.Value == vglobal.Value) && ((e.Id() == Optimize.C_EID.Id()) && @@ -369,9 +364,7 @@ func F_Generate_g_try_any (self *ClaireAny ,v *ClaireString ,e *ClaireClass ,vgl PRINC("if !ErrorIn(") F_c_princ_string(v2) PRINC(") {") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } else { PRINC("if ErrorIn(") F_c_princ_string(v2) @@ -381,10 +374,9 @@ func F_Generate_g_try_any (self *ClaireAny ,v *ClaireString ,e *ClaireClass ,vgl PRINC(" = ") F_c_princ_string(v2) F_Generate_breakline_void() - PRINC("") } if (C_tuple.Id() == loop.Isa.Id()) { - var g0136I *ClaireBoolean + var g0137I *ClaireBoolean var try_1 EID { var arg_2 *ClaireAny var try_3 EID @@ -397,8 +389,8 @@ func F_Generate_g_try_any (self *ClaireAny ,v *ClaireString ,e *ClaireClass ,vgl } if ErrorIn(try_1) {Result = try_1 } else { - g0136I = ToBoolean(OBJ(try_1)) - if (g0136I == CTRUE) { + g0137I = ToBoolean(OBJ(try_1)) + if (g0137I == CTRUE) { { var arg_4 *ClaireAny var try_5 EID try_5 = Core.F_CALL(C_nth,ARGS(loop.ToEID(),EID{C__INT,IVAL(1)})) @@ -411,9 +403,7 @@ func F_Generate_g_try_any (self *ClaireAny ,v *ClaireString ,e *ClaireClass ,vgl if !ErrorIn(Result) { PRINC(" = ") F_c_princ_string(v2) - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else { Result = EID{CFALSE.Id(),0} @@ -428,9 +418,7 @@ func F_Generate_g_try_any (self *ClaireAny ,v *ClaireString ,e *ClaireClass ,vgl } if !ErrorIn(Result) { PRINC("} else {") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } } @@ -441,9 +429,7 @@ func F_Generate_g_try_any (self *ClaireAny ,v *ClaireString ,e *ClaireClass ,vgl PRINC(" = ") Result = ToGenerateGoProducer(Optimize.C_PRODUCER.Value).FromEid(v2,e) if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else { Result = EID{CFALSE.Id(),0} @@ -485,9 +471,7 @@ func F_Generate_g_try_Assign (self *Language.Assign ,v *ClaireString ,e *ClaireC PRINC(" = ") Result = F_Generate_use_variable_string(v1,e,_Zrange) if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else { Result = EID{CFALSE.Id(),0} @@ -513,8 +497,8 @@ func E_Generate_g_try_Assign (self EID,v EID,e EID,vglobal EID,loop EID) EID { func F_Generate_close_try_integer (n int) { // procedure body with s = void { var i int = 1 - { var g0137 int = n - for (i <= g0137) { + { var g0138 int = n + for (i <= g0138) { PRINC("}") i = (i+1) } @@ -566,9 +550,7 @@ func F_Generate_error_wrap_any (self *ClaireAny ,s *ClaireClass ,v *ClaireString PRINC(" = ") Result = Core.F_CALL(C_Generate_g_expression,ARGS(self.ToEID(),EID{Optimize.C_EID.Id(),0})) if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } return Result} @@ -584,15 +566,15 @@ func E_Generate_error_wrap_any (self EID,s EID,v EID) EID { func F_Generate_g_try_void_any (self *ClaireAny ,vglobal *ClaireString ,loop *ClaireAny ) EID { // eid body s = void var Result EID - var g0141I *ClaireBoolean + var g0142I *ClaireBoolean if (self.Isa.IsIn(Language.C_Assign) == CTRUE) { - { var g0138 *Language.Assign = Language.To_Assign(self) - g0141I = Equal(ANY(Core.F_CALL(C_range,ARGS(g0138.ClaireVar.ToEID()))),Optimize.C_EID.Id()) + { var g0139 *Language.Assign = Language.To_Assign(self) + g0142I = Equal(ANY(Core.F_CALL(C_range,ARGS(g0139.ClaireVar.ToEID()))),Optimize.C_EID.Id()) } } else { - g0141I = CFALSE + g0142I = CFALSE } - if (g0141I == CTRUE) { + if (g0142I == CTRUE) { { var _Zvar *ClaireAny = ANY(Core.F_CALL(Language.C_var,ARGS(self.ToEID()))) { var v1 *ClaireString var try_1 EID @@ -614,12 +596,11 @@ func F_Generate_g_try_void_any (self *ClaireAny ,vglobal *ClaireString ,loop *Cl PRINC("_ = ") F_princ_string(v2) F_Generate_breakline_void() - PRINC("") if (self.Isa.IsIn(Language.C_Do) == CTRUE) { - { var g0139 *Language.Do = Language.To_Do(self) + { var g0140 *Language.Do = Language.To_Do(self) PRINC("{ ") F_Generate_breakline_void() - Result = F_Generate_do_statement_Do(g0139, + Result = F_Generate_do_statement_Do(g0140, Optimize.C_EID, v2, CTRUE, @@ -649,12 +630,12 @@ func F_Generate_eid_require_ask_any (x *ClaireAny ) *ClaireBoolean { // procedure body with s = boolean var Result *ClaireBoolean if (x.Isa.IsIn(Language.C_Call) == CTRUE) { - { var g0142 *Language.Call = Language.To_Call(x) - Result = Equal(g0142.Selector.Id(),Core.C_mClaire_push_I.Id()) + { var g0143 *Language.Call = Language.To_Call(x) + Result = Equal(g0143.Selector.Id(),Core.C_mClaire_push_I.Id()) } } else if (x.Isa.IsIn(Language.C_Call_method) == CTRUE) { - { var g0143 *Language.CallMethod = Language.To_CallMethod(x) - Result = MakeBoolean((g0143.Arg.Selector.Id() == C_funcall.Id()) || (g0143.Arg.Id() == C_Generate__starwrite_value_star.Value) || (g0143.Arg.Id() == C_Generate__starread_property_star.Value) || (g0143.Arg.Selector.Id() == C_write_fast.Id()) || (g0143.Arg.Selector.Id() == Core.C_nth_write.Id())) + { var g0144 *Language.CallMethod = Language.To_CallMethod(x) + Result = MakeBoolean((g0144.Arg.Selector.Id() == C_funcall.Id()) || (g0144.Arg.Id() == C_Generate__starwrite_value_star.Value) || (g0144.Arg.Id() == C_Generate__starread_property_star.Value) || (g0144.Arg.Selector.Id() == C_write_fast.Id()) || (g0144.Arg.Selector.Id() == Core.C_nth_write.Id())) } } else { Result = CFALSE @@ -671,16 +652,16 @@ func F_Generate_eid_provide_ask_any (x *ClaireAny ) *ClaireBoolean { // procedure body with s = boolean var Result *ClaireBoolean if (x.Isa.IsIn(Language.C_Call) == CTRUE) { - { var g0145 *Language.Call = Language.To_Call(x) - Result = Equal(g0145.Selector.Id(),Core.C_mClaire_get_stack.Id()) + { var g0146 *Language.Call = Language.To_Call(x) + Result = Equal(g0146.Selector.Id(),Core.C_mClaire_get_stack.Id()) } } else if (x.Isa.IsIn(Language.C_Call_method) == CTRUE) { - { var g0146 *Language.CallMethod = Language.To_CallMethod(x) - Result = MakeBoolean((g0146.Arg.Selector.Id() == Core.C_eval.Id()) || (g0146.Arg.Id() == Optimize.C_Compile_m_unsafe.Value)) + { var g0147 *Language.CallMethod = Language.To_CallMethod(x) + Result = MakeBoolean((g0147.Arg.Selector.Id() == Core.C_eval.Id()) || (g0147.Arg.Id() == Optimize.C_Compile_m_unsafe.Value)) } } else if (x.Isa.IsIn(C_Variable) == CTRUE) { - { var g0147 *ClaireVariable = To_Variable(x) - Result = g0147.Range.Included(ToType(C_integer.Id())) + { var g0148 *ClaireVariable = To_Variable(x) + Result = g0148.Range.Included(ToType(C_integer.Id())) } } else if (C_integer.Id() == x.Isa.Id()) { Result = CTRUE @@ -704,9 +685,9 @@ func F_Generate_unfold_eid_list (ldef *ClaireList ,self *ClaireAny ,s *ClaireCla { var count_try int = 0 F_Generate_new_block_string(MakeString("LetEID")) { var i int = 1 - { var g0150 int = n + { var g0151 int = n Result= EID{CFALSE.Id(),0} - for (i <= g0150) { + for (i <= g0151) { var loop_1 EID _ = loop_1 { @@ -798,12 +779,12 @@ func F_Generate_eid_expression_any (x *ClaireAny ,s *ClaireClass ,lvar *ClaireLi // eid body s = void var Result EID if (x.Isa.IsIn(C_Variable) == CTRUE) { - { var g0151 *ClaireVariable = To_Variable(x) - if ((lvar.Memq(g0151.Id()) == CTRUE) && + { var g0152 *ClaireVariable = To_Variable(x) + if ((lvar.Memq(g0152.Id()) == CTRUE) && (s.Id() == Optimize.C_EID.Id())) { { var arg_1 *ClaireString var try_2 EID - try_2 = F_Generate_c_string_go_producer1(ToGenerateGoProducer(Optimize.C_PRODUCER.Value),g0151) + try_2 = F_Generate_c_string_go_producer1(ToGenerateGoProducer(Optimize.C_PRODUCER.Value),g0152) if ErrorIn(try_2) {Result = try_2 } else { arg_1 = ToString(OBJ(try_2)) @@ -812,39 +793,39 @@ func F_Generate_eid_expression_any (x *ClaireAny ,s *ClaireClass ,lvar *ClaireLi } } } else { - Result = F_Generate_g_expression_Variable(g0151,s) + Result = F_Generate_g_expression_Variable(g0152,s) } } } else if (x.Isa.IsIn(Language.C_Call) == CTRUE) { - { var g0152 *Language.Call = Language.To_Call(x) + { var g0153 *Language.Call = Language.To_Call(x) PRINC("ClEnv.Push(") - Result = F_Generate_eid_expression_any(g0152.Args.At(1-1),Optimize.C_EID,lvar) + Result = F_Generate_eid_expression_any(g0153.Args.At(1-1),Optimize.C_EID,lvar) if !ErrorIn(Result) { PRINC(")") Result = EVOID } } } else if (x.Isa.IsIn(Language.C_Call_method) == CTRUE) { - { var g0153 *Language.CallMethod = Language.To_CallMethod(x) - if (g0153.Arg.Selector.Id() == C_funcall.Id()) { + { var g0154 *Language.CallMethod = Language.To_CallMethod(x) + if (g0154.Arg.Selector.Id() == C_funcall.Id()) { PRINC("FASTCALL") - F_princ_integer((g0153.Args.Length()-1)) + F_princ_integer((g0154.Args.Length()-1)) PRINC("(") - Result = F_Generate_eid_expression_any(g0153.Args.At(1-1),C_method,lvar) + Result = F_Generate_eid_expression_any(g0154.Args.At(1-1),C_method,lvar) if !ErrorIn(Result) { PRINC(",") - Result = F_Generate_eid_expression_any(g0153.Args.At(2-1),Optimize.C_EID,lvar) + Result = F_Generate_eid_expression_any(g0154.Args.At(2-1),Optimize.C_EID,lvar) if !ErrorIn(Result) { - if (g0153.Args.Length() >= 3) { + if (g0154.Args.Length() >= 3) { PRINC(",") - Result = F_Generate_eid_expression_any(g0153.Args.At(3-1),Optimize.C_EID,lvar) + Result = F_Generate_eid_expression_any(g0154.Args.At(3-1),Optimize.C_EID,lvar) } else { Result = EID{CFALSE.Id(),0} } if !ErrorIn(Result) { - if (g0153.Args.Length() == 4) { + if (g0154.Args.Length() == 4) { PRINC(",") - Result = F_Generate_eid_expression_any(g0153.Args.At(4-1),Optimize.C_EID,lvar) + Result = F_Generate_eid_expression_any(g0154.Args.At(4-1),Optimize.C_EID,lvar) } else { Result = EID{CFALSE.Id(),0} } @@ -852,44 +833,44 @@ func F_Generate_eid_expression_any (x *ClaireAny ,s *ClaireClass ,lvar *ClaireLi PRINC(")") Result = EVOID }}}} - } else if (g0153.Arg.Id() == C_Generate__starread_property_star.Value) { - Result = Core.F_CALL(C_Generate_g_expression,ARGS(g0153.Args.At(1-1).ToEID(),EID{C_property.Id(),0})) + } else if (g0154.Arg.Id() == C_Generate__starread_property_star.Value) { + Result = Core.F_CALL(C_Generate_g_expression,ARGS(g0154.Args.At(1-1).ToEID(),EID{C_property.Id(),0})) if !ErrorIn(Result) { PRINC(".ReadEID(") - Result = F_Generate_eid_expression_any(g0153.Args.At(2-1),Optimize.C_EID,lvar) + Result = F_Generate_eid_expression_any(g0154.Args.At(2-1),Optimize.C_EID,lvar) if !ErrorIn(Result) { PRINC(")") Result = EVOID }} - } else if (g0153.Arg.Selector.Id() == C_write_fast.Id()) { - Result = Core.F_CALL(C_Generate_g_expression,ARGS(g0153.Args.At(1-1).ToEID(),EID{C_property.Id(),0})) + } else if (g0154.Arg.Selector.Id() == C_write_fast.Id()) { + Result = Core.F_CALL(C_Generate_g_expression,ARGS(g0154.Args.At(1-1).ToEID(),EID{C_property.Id(),0})) if !ErrorIn(Result) { PRINC(".WriteEID(") - Result = Core.F_CALL(C_Generate_g_expression,ARGS(g0153.Args.At(2-1).ToEID(),EID{C_object.Id(),0})) + Result = Core.F_CALL(C_Generate_g_expression,ARGS(g0154.Args.At(2-1).ToEID(),EID{C_object.Id(),0})) if !ErrorIn(Result) { PRINC(",") - Result = F_Generate_eid_expression_any(g0153.Args.At(3-1),Optimize.C_EID,lvar) + Result = F_Generate_eid_expression_any(g0154.Args.At(3-1),Optimize.C_EID,lvar) if !ErrorIn(Result) { PRINC(")") Result = EVOID }}} - } else if (g0153.Arg.Selector.Id() == Core.C_nth_write.Id()) { - Result = Core.F_CALL(C_Generate_g_expression,ARGS(g0153.Args.At(1-1).ToEID(),EID{C_list.Id(),0})) + } else if (g0154.Arg.Selector.Id() == Core.C_nth_write.Id()) { + Result = Core.F_CALL(C_Generate_g_expression,ARGS(g0154.Args.At(1-1).ToEID(),EID{C_list.Id(),0})) if !ErrorIn(Result) { PRINC(".WriteEID(") - Result = Core.F_CALL(C_Generate_g_expression,ARGS(g0153.Args.At(2-1).ToEID(),EID{C_integer.Id(),0})) + Result = Core.F_CALL(C_Generate_g_expression,ARGS(g0154.Args.At(2-1).ToEID(),EID{C_integer.Id(),0})) if !ErrorIn(Result) { PRINC(",") - Result = F_Generate_eid_expression_any(g0153.Args.At(3-1),Optimize.C_EID,lvar) + Result = F_Generate_eid_expression_any(g0154.Args.At(3-1),Optimize.C_EID,lvar) if !ErrorIn(Result) { PRINC(")") Result = EVOID }}} } else { - Result = Core.F_CALL(C_Generate_g_expression,ARGS(g0153.Args.At(1-1).ToEID(),EID{C_Variable.Id(),0})) + Result = Core.F_CALL(C_Generate_g_expression,ARGS(g0154.Args.At(1-1).ToEID(),EID{C_Variable.Id(),0})) if !ErrorIn(Result) { PRINC(".WriteEID(") - Result = F_Generate_eid_expression_any(g0153.Args.At(2-1),Optimize.C_EID,lvar) + Result = F_Generate_eid_expression_any(g0154.Args.At(2-1),Optimize.C_EID,lvar) if !ErrorIn(Result) { PRINC(")") Result = EVOID @@ -917,14 +898,14 @@ func E_Generate_eid_expression_any (x EID,s EID,lvar EID) EID { func F_Generate_statement_any (self *ClaireAny ,s *ClaireClass ,v *ClaireString ,loop *ClaireAny ) EID { // eid body s = void var Result EID - var g0155I *ClaireBoolean + var g0156I *ClaireBoolean var try_1 EID try_1 = F_Generate_g_clean_any(self) if ErrorIn(try_1) {Result = try_1 } else { - g0155I = ToBoolean(OBJ(try_1)) - if (g0155I == CTRUE) { - var g0156I *ClaireBoolean + g0156I = ToBoolean(OBJ(try_1)) + if (g0156I == CTRUE) { + var g0157I *ClaireBoolean var try_2 EID { var v_and3 *ClaireBoolean @@ -953,15 +934,13 @@ func F_Generate_statement_any (self *ClaireAny ,s *ClaireClass ,v *ClaireString } if ErrorIn(try_2) {Result = try_2 } else { - g0156I = ToBoolean(OBJ(try_2)) - if (g0156I == CTRUE) { + g0157I = ToBoolean(OBJ(try_2)) + if (g0157I == CTRUE) { F_c_princ_string(v) PRINC(" = ") Result = Core.F_CALL(C_Generate_g_expression,ARGS(self.ToEID(),EID{s.Id(),0})) if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else if (self.Isa.IsIn(Language.C_If) == CTRUE) { Result = Core.F_CALL(C_Generate_g_statement,ARGS(self.ToEID(), @@ -977,9 +956,7 @@ func F_Generate_statement_any (self *ClaireAny ,s *ClaireClass ,v *ClaireString if (s.Id() == Optimize.C_EID.Id()) { F_c_princ_string(v) PRINC(" = EVOID") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } else { Result = EID{CFALSE.Id(),0} } @@ -1018,20 +995,18 @@ func E_Generate_statement_any (self EID,s EID,v EID,loop EID) EID { func (c *GenerateGoProducer ) StatExp (self *ClaireAny ,s *ClaireClass ) EID { // eid body s = void var Result EID - var g0157I *ClaireBoolean + var g0158I *ClaireBoolean var try_1 EID try_1 = Optimize.F_Compile_designated_ask_any(self) if ErrorIn(try_1) {Result = try_1 } else { - g0157I = ToBoolean(OBJ(try_1)) - if (g0157I == CTRUE) { + g0158I = ToBoolean(OBJ(try_1)) + if (g0158I == CTRUE) { Result = F_Generate_breakline_void().ToEID() } else { Result = Core.F_CALL(C_Generate_g_expression,ARGS(self.ToEID(),EID{s.Id(),0})) if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } } @@ -1076,9 +1051,9 @@ func F_Generate_do_statement_Do (self *Language.Do ,e *ClaireClass ,v *ClaireStr { var l *ClaireList = self.Args { var m int = l.Length() { var n int = 1 - { var g0158 int = m + { var g0159 int = m Result= EID{CFALSE.Id(),0} - for (n <= g0158) { + for (n <= g0159) { var loop_1 EID _ = loop_1 { @@ -1106,20 +1081,20 @@ func F_Generate_do_statement_Do (self *Language.Do ,e *ClaireClass ,v *ClaireStr { var m int = l.Length() { var count_if int = 0 { var n int = 1 - { var g0159 int = m + { var g0160 int = m Result= EID{CFALSE.Id(),0} - for (n <= g0159) { + for (n <= g0160) { var loop_3 EID _ = loop_3 { { var x *ClaireAny = l.At(n-1) - var g0160I *ClaireBoolean + var g0161I *ClaireBoolean var try_4 EID try_4 = Optimize.F_Compile_g_throw_any(x) if ErrorIn(try_4) {loop_3 = try_4 } else { - g0160I = ToBoolean(OBJ(try_4)) - if (g0160I == CTRUE) { + g0161I = ToBoolean(OBJ(try_4)) + if (g0161I == CTRUE) { if ((n < m) || (C_tuple.Id() == loop.Isa.Id())) { count_if = (count_if+1) @@ -1188,18 +1163,21 @@ func E_Generate_do_statement_Do (self EID,e EID,v EID,err EID,loop EID,_Zneed EI func F_Generate_g_statement_Let (self *Language.Let ,e *ClaireClass ,v *ClaireString ,err *ClaireBoolean ,loop *ClaireAny ) EID { // eid body s = void var Result EID - var g0161I *ClaireBoolean + var g0162I *ClaireBoolean var try_1 EID try_1 = F_Generate_let_eid_ask_Let(self) if ErrorIn(try_1) {Result = try_1 } else { - g0161I = ToBoolean(OBJ(try_1)) - if (g0161I == CTRUE) { + g0162I = ToBoolean(OBJ(try_1)) + if (g0162I == CTRUE) { Result = F_Generate_g_eid_stat_Let(self, e, v, err, loop) + } else if ((self.Arg == self.ClaireVar.Id()) && + (e.Id() == C_void.Id())) { + Result = F_Generate_statement_any(self.Value,e,v,loop) } else { { var ns *ClaireString var try_2 EID @@ -1236,10 +1214,6 @@ func F_Generate_g_statement_Let (self *Language.Let ,e *ClaireClass ,v *ClaireSt if (f == CTRUE) { PRINC(" = ") Result = Core.F_CALL(C_Generate_g_expression,ARGS(x.ToEID(),EID{ev.Id(),0})) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - } } else { Result = EID{CFALSE.Id(),0} } @@ -1250,7 +1224,6 @@ func F_Generate_g_statement_Let (self *Language.Let ,e *ClaireClass ,v *ClaireSt PRINC("_ = ") F_princ_string(v2) F_Generate_breakline_void() - PRINC("") } if (try_ask == CTRUE) { Result = Core.F_CALL(C_Generate_g_try,ARGS(x.ToEID(), @@ -1339,14 +1312,14 @@ func F_Generate_let_eid_ask_Let (self *Language.Let ) EID { } else { var try_4 EID if (y.Isa.IsIn(Language.C_Do) == CTRUE) { - { var g0162 *Language.Do = Language.To_Do(y) + { var g0163 *Language.Do = Language.To_Do(y) { var v_and10 *ClaireBoolean var try_5 EID { var arg_6 *ClaireBoolean var try_7 EID - try_7 = Optimize.F_Compile_g_throw_any(g0162.Id()) + try_7 = Optimize.F_Compile_g_throw_any(g0163.Id()) if ErrorIn(try_7) {try_5 = try_7 } else { arg_6 = ToBoolean(OBJ(try_7)) @@ -1361,7 +1334,7 @@ func F_Generate_let_eid_ask_Let (self *Language.Let ) EID { var try_8 EID { var arg_9 *ClaireAny var try_10 EID - try_10 = Core.F_last_list(g0162.Args) + try_10 = Core.F_last_list(g0163.Args) if ErrorIn(try_10) {try_8 = try_10 } else { arg_9 = ANY(try_10) @@ -1444,18 +1417,16 @@ func F_Generate_g_eid_stat_Let (self *Language.Let ,e *ClaireClass ,v *ClaireStr PRINC(" = ") Result = Core.F_CALL(C_Generate_g_expression,ARGS(x.ToEID(),EID{Optimize.C_EID.Id(),0})) if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } if !ErrorIn(Result) { { var y *Language.Do = Language.To_Do(self.Arg) { var n int = y.Args.Length() { var i int = 1 - { var g0163 int = (n-1) + { var g0164 int = (n-1) Result= EID{CFALSE.Id(),0} - for (i <= g0163) { + for (i <= g0164) { var loop_3 EID _ = loop_3 { @@ -1473,7 +1444,6 @@ func F_Generate_g_eid_stat_Let (self *Language.Let ,e *ClaireClass ,v *ClaireStr F_princ_string(v) PRINC(" = ") F_princ_string(v2) - PRINC("") Result = EVOID } } @@ -1537,7 +1507,7 @@ func F_Generate_g_statement_Construct (self *Language.Construct ,s *ClaireClass t = ToType(C_void.Id()) } F_Generate_new_block_string(MakeString("Construct")) - var g0168I *ClaireBoolean + var g0169I *ClaireBoolean var try_2 EID { var arg_3 *ClaireAny var try_4 EID @@ -1552,7 +1522,7 @@ func F_Generate_g_statement_Construct (self *Language.Construct ,s *ClaireClass x = x_support.At(i_it) var loop_5 EID _ = loop_5 - var g0169I *ClaireBoolean + var g0170I *ClaireBoolean var try_6 EID { var arg_7 *ClaireBoolean var try_8 EID @@ -1565,8 +1535,8 @@ func F_Generate_g_statement_Construct (self *Language.Construct ,s *ClaireClass } if ErrorIn(try_6) {loop_5 = try_6 } else { - g0169I = ToBoolean(OBJ(try_6)) - if (g0169I == CTRUE) { + g0170I = ToBoolean(OBJ(try_6)) + if (g0170I == CTRUE) { try_4 = EID{CTRUE.Id(),0} break } else { @@ -1587,8 +1557,8 @@ func F_Generate_g_statement_Construct (self *Language.Construct ,s *ClaireClass } if ErrorIn(try_2) {Result = try_2 } else { - g0168I = ToBoolean(OBJ(try_2)) - if (g0168I == CTRUE) { + g0169I = ToBoolean(OBJ(try_2)) + if (g0169I == CTRUE) { F_Generate_var_declaration_string(v2,C_any,1) Result = EVOID } else { @@ -1628,7 +1598,6 @@ func F_Generate_g_statement_Construct (self *Language.Construct ,s *ClaireClass F_Generate_cap_short_symbol(kind.Name) PRINC("()") F_Generate_cast_post_class(kind,s) - PRINC("") Result = EVOID }} if !ErrorIn(Result) { @@ -1742,13 +1711,13 @@ func F_Generate_g_statement_If (self *Language.If ,s *ClaireClass ,v *ClaireStri if ErrorIn(try_1) {Result = try_1 } else { try_ask = ToBoolean(OBJ(try_1)) - var g0170I *ClaireBoolean + var g0171I *ClaireBoolean var try_2 EID try_2 = F_Generate_g_clean_any(self.Test) if ErrorIn(try_2) {Result = try_2 } else { - g0170I = ToBoolean(OBJ(try_2)) - if (g0170I == CTRUE) { + g0171I = ToBoolean(OBJ(try_2)) + if (g0171I == CTRUE) { PRINC("if ") Result = Core.F_CALL(Optimize.C_Compile_bool_exp,ARGS(self.Test.ToEID(),EID{CTRUE.Id(),0})) if !ErrorIn(Result) { @@ -1781,7 +1750,6 @@ func F_Generate_g_statement_If (self *Language.If ,s *ClaireClass ,v *ClaireStri F_princ_string(v2) PRINC(" == CTRUE) ") F_Generate_new_block_string(MakeString("If")) - PRINC("") Result = EVOID } } @@ -1797,7 +1765,7 @@ func F_Generate_g_statement_If (self *Language.If ,s *ClaireClass ,v *ClaireStri F_Generate_close_block_string(MakeString("If")) Result = EVOID } else { - var g0171I *ClaireBoolean + var g0172I *ClaireBoolean var try_4 EID { var v_and4 *ClaireBoolean @@ -1834,8 +1802,8 @@ func F_Generate_g_statement_If (self *Language.If ,s *ClaireClass ,v *ClaireStri } if ErrorIn(try_4) {Result = try_4 } else { - g0171I = ToBoolean(OBJ(try_4)) - if (g0171I == CTRUE) { + g0172I = ToBoolean(OBJ(try_4)) + if (g0172I == CTRUE) { F_Generate_finish_block_string(MakeString("If")) PRINC(" else ") Result = Core.F_CALL(C_Generate_g_statement,ARGS(self.Other.ToEID(), @@ -1843,17 +1811,12 @@ func F_Generate_g_statement_If (self *Language.If ,s *ClaireClass ,v *ClaireStri EID{(v).Id(),0}, EID{CFALSE.Id(),0}, loop.ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - } } else { PRINC("} else {") F_Generate_breakline_void() Result = F_Generate_statement_any(self.Other,s,v,loop) if !ErrorIn(Result) { F_Generate_close_block_string(MakeString("If")) - PRINC("") Result = EVOID } } @@ -1938,7 +1901,6 @@ func F_Generate_g_statement_And (self *Language.And ,s *ClaireClass ,v *ClaireSt } else { PRINC("CFALSE") F_Generate_cast_post_class(C_boolean,s) - PRINC("") loop_1 = EVOID } } else { @@ -1950,7 +1912,6 @@ func F_Generate_g_statement_And (self *Language.And ,s *ClaireClass ,v *ClaireSt F_Generate_breakline_void() PRINC("} else ") F_Generate_new_block_string(MakeString("arg")) - PRINC("") loop_1 = EVOID } if ErrorIn(loop_1) {Result = loop_1 @@ -1973,7 +1934,6 @@ func F_Generate_g_statement_And (self *Language.And ,s *ClaireClass ,v *ClaireSt if !ErrorIn(Result) { PRINC("CTRUE") F_Generate_cast_post_class(C_boolean,s) - PRINC("") Result = EVOID } } else { @@ -2064,7 +2024,6 @@ func F_Generate_g_statement_Or (self *Language.Or ,s *ClaireClass ,v *ClaireStri } else { PRINC("CTRUE") F_Generate_cast_post_class(C_boolean,s) - PRINC("") loop_1 = EVOID } } else { @@ -2076,7 +2035,6 @@ func F_Generate_g_statement_Or (self *Language.Or ,s *ClaireClass ,v *ClaireStri F_Generate_breakline_void() PRINC("} else ") F_Generate_new_block_string(MakeString("or")) - PRINC("") loop_1 = EVOID } if ErrorIn(loop_1) {Result = loop_1 @@ -2099,7 +2057,6 @@ func F_Generate_g_statement_Or (self *Language.Or ,s *ClaireClass ,v *ClaireStri if !ErrorIn(Result) { PRINC("CFALSE") F_Generate_cast_post_class(C_boolean,s) - PRINC("") Result = EVOID } } else { @@ -2166,9 +2123,7 @@ func F_Generate_g_statement_Assign (self *Language.Assign ,s *ClaireClass ,v *Cl PRINC(" = ") Result = F_Generate_use_variable_string(v2,s,_Zrange) if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else { Result = EID{CFALSE.Id(),0} @@ -2185,9 +2140,7 @@ func F_Generate_g_statement_Assign (self *Language.Assign ,s *ClaireClass ,v *Cl PRINC(" = ") Result = F_Generate_use_variable_string(v2,s,_Zrange) if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else { Result = EID{CFALSE.Id(),0} @@ -2213,111 +2166,114 @@ func E_Generate_g_statement_Assign (self EID,s EID,v EID,err EID,loop EID) EID { // This is the global variable assignment - global variables exist in go so this is pretty simple // note that the tricky part is the store management +// v4.0.4 : if nativeVar, we need to produce the go object, not an any (any is now replaced by %srange) /* The go function for: g_statement(self:Gassign,s:class,v:string,err:boolean,loop:any) [status=1] */ func F_Generate_g_statement_Gassign (self *Language.Gassign ,s *ClaireClass ,v *ClaireString ,err *ClaireBoolean ,loop *ClaireAny ) EID { // eid body s = void var Result EID { var _Zvar *Core.GlobalVariable = self.ClaireVar { var x *ClaireAny = self.Arg - var g0172I *ClaireBoolean - var try_1 EID - { - var v_and4 *ClaireBoolean - - var try_2 EID - try_2 = F_Generate_g_func_any(x) - if ErrorIn(try_2) {try_1 = try_2 - } else { - v_and4 = ToBoolean(OBJ(try_2)) - if (v_and4 == CFALSE) {try_1 = EID{CFALSE.Id(),0} - } else { - v_and4 = Equal(s.Id(),C_void.Id()) - if (v_and4 == CFALSE) {try_1 = EID{CFALSE.Id(),0} + { var _Zrange *ClaireClass + if (Optimize.F_Compile_nativeVar_ask_global_variable(_Zvar) == CTRUE) { + _Zrange = F_Generate_getRange_global_variable(_Zvar) + } else { + _Zrange = C_any + } + var g0173I *ClaireBoolean + var try_1 EID + { + var v_and5 *ClaireBoolean + + var try_2 EID + try_2 = F_Generate_g_func_any(x) + if ErrorIn(try_2) {try_1 = try_2 + } else { + v_and5 = ToBoolean(OBJ(try_2)) + if (v_and5 == CFALSE) {try_1 = EID{CFALSE.Id(),0} } else { - v_and4 = _Zvar.Store_ask.Not - if (v_and4 == CFALSE) {try_1 = EID{CFALSE.Id(),0} + v_and5 = Equal(s.Id(),C_void.Id()) + if (v_and5 == CFALSE) {try_1 = EID{CFALSE.Id(),0} } else { - try_1 = EID{CTRUE.Id(),0}} + v_and5 = _Zvar.Store_ask.Not + if (v_and5 == CFALSE) {try_1 = EID{CFALSE.Id(),0} + } else { + try_1 = EID{CTRUE.Id(),0}} + } } + } } - } - } - if ErrorIn(try_1) {Result = try_1 - } else { - g0172I = ToBoolean(OBJ(try_1)) - if (g0172I == CTRUE) { - ToGenerateGoProducer(Optimize.C_PRODUCER.Value).GlobalVar(_Zvar) - PRINC(" = ") - Result = Core.F_CALL(C_Generate_g_expression,ARGS(x.ToEID(),EID{C_any.Id(),0})) - if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID - } + if ErrorIn(try_1) {Result = try_1 } else { - { var v2 *ClaireString = F_Generate_genvar_string(MakeString("v_gassign")) - { var try_ask *ClaireBoolean - var try_3 EID - try_3 = Optimize.F_Compile_g_throw_any(x) - if ErrorIn(try_3) {Result = try_3 - } else { - try_ask = ToBoolean(OBJ(try_3)) - if ((try_ask != CTRUE) && - (s.Id() == C_any.Id())) { - v2 = v - } else { - F_Generate_var_declaration_string(v2,C_any,1) - } - if (try_ask == CTRUE) { - Result = Core.F_CALL(C_Generate_g_try,ARGS(x.ToEID(), - EID{(v2).Id(),0}, - EID{C_any.Id(),0}, - EID{(v).Id(),0}, - EID{CFALSE.Id(),0})) - } else { - Result = F_Generate_statement_any(x,C_any,v2,loop) - } - if !ErrorIn(Result) { - if (self.ClaireVar.Store_ask == CTRUE) { - F_Generate_thing_ident_thing(ToThing(_Zvar.Id())) - PRINC(".StoreObj(3,") - F_c_princ_string(v2) - PRINC(",CTRUE)") - F_Generate_breakline_void() - PRINC("") + g0173I = ToBoolean(OBJ(try_1)) + if (g0173I == CTRUE) { + ToGenerateGoProducer(Optimize.C_PRODUCER.Value).GlobalVar(_Zvar) + PRINC(" = ") + Result = Core.F_CALL(C_Generate_g_expression,ARGS(x.ToEID(),EID{_Zrange.Id(),0})) + if !ErrorIn(Result) { + Result = F_Generate_breakline_void().ToEID() + } + } else { + { var v2 *ClaireString = F_Generate_genvar_string(MakeString("v_gassign")) + { var try_ask *ClaireBoolean + var try_3 EID + try_3 = Optimize.F_Compile_g_throw_any(x) + if ErrorIn(try_3) {Result = try_3 } else { - ToGenerateGoProducer(Optimize.C_PRODUCER.Value).GlobalVar(_Zvar) - PRINC(" = ") - F_c_princ_string(v2) - F_Generate_breakline_void() - PRINC("") - } - if ((s.Id() != C_void.Id()) && - (v.Value != v2.Value)) { - F_c_princ_string(v) - PRINC(" = ") - Result = F_Generate_use_variable_string(v2,s,C_any) + try_ask = ToBoolean(OBJ(try_3)) + if ((try_ask != CTRUE) && + ((s.Id() == C_any.Id()) && + (_Zrange.Id() == C_any.Id()))) { + v2 = v + } else { + F_Generate_var_declaration_string(v2,_Zrange,1) + } + if (try_ask == CTRUE) { + Result = Core.F_CALL(C_Generate_g_try,ARGS(x.ToEID(), + EID{(v2).Id(),0}, + EID{_Zrange.Id(),0}, + EID{(v).Id(),0}, + EID{CFALSE.Id(),0})) + } else { + Result = F_Generate_statement_any(x,_Zrange,v2,loop) + } if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + if (self.ClaireVar.Store_ask == CTRUE) { + F_Generate_thing_ident_thing(ToThing(_Zvar.Id())) + PRINC(".StoreObj(3,") + F_c_princ_string(v2) + PRINC(",CTRUE)") + F_Generate_breakline_void() + } else { + ToGenerateGoProducer(Optimize.C_PRODUCER.Value).GlobalVar(_Zvar) + PRINC(" = ") + F_c_princ_string(v2) + F_Generate_breakline_void() + } + if ((s.Id() != C_void.Id()) && + (v.Value != v2.Value)) { + F_c_princ_string(v) + PRINC(" = ") + Result = F_Generate_use_variable_string(v2,s,_Zrange) + if !ErrorIn(Result) { + Result = F_Generate_breakline_void().ToEID() + } + } else { + Result = EID{CFALSE.Id(),0} + } + if !ErrorIn(Result) { + if (try_ask == CTRUE) { + F_Generate_close_block_void() + Result = EVOID + } else { + Result = EID{CFALSE.Id(),0} + } + }} } - } else { - Result = EID{CFALSE.Id(),0} - } - if !ErrorIn(Result) { - if (try_ask == CTRUE) { - F_Generate_close_block_void() - Result = EVOID - } else { - Result = EID{CFALSE.Id(),0} } - }} - } } } + } } - } } } return Result} @@ -2408,9 +2364,7 @@ func F_Generate_g_statement_For (self *Language.For ,s *ClaireClass ,v *ClaireSt if !ErrorIn(Result) { PRINC("CFALSE") F_Generate_cast_post_class(C_boolean,s) - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else { Result = EID{CFALSE.Id(),0} @@ -2443,21 +2397,19 @@ func F_Generate_g_statement_For (self *Language.For ,s *ClaireClass ,v *ClaireSt if !ErrorIn(Result) { F_princ_string(v4) F_Generate_cast_post_class(C_any,v2_range) - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else { Result = EID{CFALSE.Id(),0} } if !ErrorIn(Result) { - var g0173I *ClaireBoolean + var g0174I *ClaireBoolean var try_7 EID try_7 = Optimize.F_Compile_g_throw_any(self.Arg) if ErrorIn(try_7) {Result = try_7 } else { - g0173I = ToBoolean(OBJ(try_7)) - if (g0173I == CTRUE) { + g0174I = ToBoolean(OBJ(try_7)) + if (g0174I == CTRUE) { Result = F_Generate_g_try_void_any(self.Arg,v,MakeTuple((v).Id(),s.Id()).Id()) if !ErrorIn(Result) { count_try = (count_try+1) @@ -2502,7 +2454,7 @@ func E_Generate_g_statement_For (self EID,s EID,v EID,err EID,loop EID) EID { func F_Generate_iteration_statement_For (self *Language.For ,_Zset *ClaireAny ,sbag *ClaireClass ,smember *ClaireClass ,v *ClaireString ,v3 *ClaireString ,v4 *ClaireString ) EID { // eid body s = integer var Result EID - var g0174I *ClaireBoolean + var g0175I *ClaireBoolean var try_1 EID { var v_and2 *ClaireBoolean @@ -2531,8 +2483,8 @@ func F_Generate_iteration_statement_For (self *Language.For ,_Zset *ClaireAny ,s } if ErrorIn(try_1) {Result = try_1 } else { - g0174I = ToBoolean(OBJ(try_1)) - if (g0174I == CTRUE) { + g0175I = ToBoolean(OBJ(try_1)) + if (g0175I == CTRUE) { PRINC("for _,") F_c_princ_string(v4) PRINC(" = range(") @@ -2541,7 +2493,6 @@ func F_Generate_iteration_statement_For (self *Language.For ,_Zset *ClaireAny ,s F_Generate_cast_Values_class(sbag,smember) PRINC(")") F_Generate_new_block_string(MakeString("loop")) - PRINC("") Result = EVOID } if !ErrorIn(Result) { @@ -2577,20 +2528,16 @@ func F_Generate_iteration_statement_For (self *Language.For ,_Zset *ClaireAny ,s F_c_princ_string(v3) F_Generate_cast_Values_class(sbag,smember) PRINC("[i_it]") - F_Generate_breakline_void() - PRINC("") + Result = F_Generate_breakline_void().ToEID() } else { F_c_princ_string(v4) PRINC(" = ") F_c_princ_string(v3) PRINC(".At(i_it)") - F_Generate_breakline_void() - PRINC("") + Result = F_Generate_breakline_void().ToEID() } - PRINC("") - Result = EVOID } else { - var g0175I *ClaireBoolean + var g0176I *ClaireBoolean var try_5 EID { var arg_6 *ClaireClass var try_7 EID @@ -2603,8 +2550,8 @@ func F_Generate_iteration_statement_For (self *Language.For ,_Zset *ClaireAny ,s } if ErrorIn(try_5) {Result = try_5 } else { - g0175I = ToBoolean(OBJ(try_5)) - if (g0175I == CTRUE) { + g0176I = ToBoolean(OBJ(try_5)) + if (g0176I == CTRUE) { PRINC("for _,") F_c_princ_string(v4) PRINC(" = range(") @@ -2612,7 +2559,6 @@ func F_Generate_iteration_statement_For (self *Language.For ,_Zset *ClaireAny ,s F_Generate_cast_Values_class(sbag,smember) PRINC(")") F_Generate_new_block_string(MakeString("loop2")) - PRINC("") Result = EVOID } else { { var v5 *ClaireString @@ -2634,7 +2580,6 @@ func F_Generate_iteration_statement_For (self *Language.For ,_Zset *ClaireAny ,s F_c_princ_string(v3) PRINC(".Length()") F_Generate_breakline_void() - PRINC("") PRINC("for i_it := 0; i_it < ") F_c_princ_string(v5) PRINC("; i_it++ ") @@ -2643,10 +2588,7 @@ func F_Generate_iteration_statement_For (self *Language.For ,_Zset *ClaireAny ,s PRINC(" = ") F_c_princ_string(v3) PRINC(".At(i_it)") - F_Generate_breakline_void() - PRINC("") - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } } @@ -2699,7 +2641,7 @@ func F_Generate_g_statement_Iteration (self *Language.Iteration ,s *ClaireClass { var vlocal *ClaireString = F_Generate_check_var_string(MakeString("v_local")) { var bag_type *ClaireClass var try_2 EID - var g0176I *ClaireBoolean + var g0177I *ClaireBoolean var try_3 EID { var arg_4 *ClaireType var try_5 EID @@ -2712,8 +2654,8 @@ func F_Generate_g_statement_Iteration (self *Language.Iteration ,s *ClaireClass } if ErrorIn(try_3) {try_2 = try_3 } else { - g0176I = ToBoolean(OBJ(try_3)) - if (g0176I == CTRUE) { + g0177I = ToBoolean(OBJ(try_3)) + if (g0177I == CTRUE) { try_2 = EID{C_set.Id(),0} } else { try_2 = EID{C_list.Id(),0} @@ -2728,13 +2670,13 @@ func F_Generate_g_statement_Iteration (self *Language.Iteration ,s *ClaireClass F_Generate_var_declaration_string(vlist,bag_type,1) F_Generate_var_declaration_string(v2,v2_range,1) F_Generate_var_declaration_string(vlocal,C_any,1) - var g0177I *ClaireBoolean + var g0178I *ClaireBoolean var try_6 EID try_6 = Optimize.F_Compile_g_throw_any(self.SetArg) if ErrorIn(try_6) {Result = try_6 } else { - g0177I = ToBoolean(OBJ(try_6)) - if (g0177I == CTRUE) { + g0178I = ToBoolean(OBJ(try_6)) + if (g0178I == CTRUE) { try_count = (try_count+1) Result = Core.F_CALL(C_Generate_g_try,ARGS(self.SetArg.ToEID(), EID{(vlist).Id(),0}, @@ -2770,9 +2712,7 @@ func F_Generate_g_statement_Iteration (self *Language.Iteration ,s *ClaireClass F_princ_string(vlist) PRINC(".Length())") F_Generate_cast_post_class(C_list,s) - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() }} if !ErrorIn(Result) { PRINC("for CLcount := 0; CLcount < ") @@ -2783,7 +2723,6 @@ func F_Generate_g_statement_Iteration (self *Language.Iteration ,s *ClaireClass MakeString("Length()").Id()))) PRINC("; CLcount++") F_Generate_new_block_void() - PRINC("") F_princ_string(v2) PRINC(" = ") Result = F_Generate_cast_prefix_class(C_any,v2_range) @@ -2791,18 +2730,16 @@ func F_Generate_g_statement_Iteration (self *Language.Iteration ,s *ClaireClass F_princ_string(vlist) PRINC(".At(CLcount)") F_Generate_cast_post_class(C_any,v2_range) - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } if !ErrorIn(Result) { - var g0178I *ClaireBoolean + var g0179I *ClaireBoolean var try_9 EID try_9 = Optimize.F_Compile_g_throw_any(self.Arg) if ErrorIn(try_9) {Result = try_9 } else { - g0178I = ToBoolean(OBJ(try_9)) - if (g0178I == CTRUE) { + g0179I = ToBoolean(OBJ(try_9)) + if (g0179I == CTRUE) { try_count = (try_count+1) Result = Core.F_CALL(C_Generate_g_try,ARGS(self.Arg.ToEID(), EID{(vlocal).Id(),0}, @@ -2821,9 +2758,7 @@ func F_Generate_g_statement_Iteration (self *Language.Iteration ,s *ClaireClass PRINC(".PutAt(CLcount,") F_princ_string(vlocal) PRINC(")") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } if !ErrorIn(Result) { F_Generate_close_block_void() @@ -2903,9 +2838,7 @@ func F_Generate_g_statement_While (self *Language.While ,s *ClaireClass ,v *Clai if !ErrorIn(Result) { PRINC("CFALSE") F_Generate_cast_post_class(C_boolean,s) - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else { Result = EID{CFALSE.Id(),0} @@ -3005,9 +2938,9 @@ func F_Generate_g_statement_Return (self *Language.Return ,s *ClaireClass ,v *Cl // eid body s = void var Result EID if (C_tuple.Id() == loop.Isa.Id()) { - { var g0179 *ClaireTuple = ToTuple(loop) - { var vreturn *ClaireString = ToString(ToList(g0179.Id()).At(1-1)) - { var sreturn *ClaireClass = ToClass(ToList(g0179.Id()).At(2-1)) + { var g0180 *ClaireTuple = ToTuple(loop) + { var vreturn *ClaireString = ToString(ToList(g0180.Id()).At(1-1)) + { var sreturn *ClaireClass = ToClass(ToList(g0180.Id()).At(2-1)) if (ToGenerateGoProducer(Optimize.C_PRODUCER.Value).Debug_ask == CTRUE) { PRINC(" /*v = ") F_princ_string(vreturn) @@ -3015,9 +2948,7 @@ func F_Generate_g_statement_Return (self *Language.Return ,s *ClaireClass ,v *Cl Result = Core.F_print_any(sreturn.Id()) if !ErrorIn(Result) { PRINC("*/") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else { Result = EID{CFALSE.Id(),0} @@ -3056,13 +2987,13 @@ func E_Generate_g_statement_Return (self EID,s EID,v EID,err EID,loop EID) EID { func F_Generate_g_statement_Call (self *Language.Call ,s *ClaireClass ,v *ClaireString ,err *ClaireBoolean ,loop *ClaireAny ) EID { // eid body s = void var Result EID - var g0180I *ClaireBoolean + var g0181I *ClaireBoolean var try_1 EID try_1 = F_Generate_g_clean_any(self.Args.Id()) if ErrorIn(try_1) {Result = try_1 } else { - g0180I = ToBoolean(OBJ(try_1)) - if (g0180I == CTRUE) { + g0181I = ToBoolean(OBJ(try_1)) + if (g0181I == CTRUE) { Result = F_Generate_inline_stat_Call(self,s,v) } else { { var l *ClaireList = self.Args @@ -3154,9 +3085,7 @@ func F_Generate_inline_stat_Call (self *Language.Call ,s *ClaireClass ,v *Claire PRINC(" = ") Result = ToGenerateGoProducer(Optimize.C_PRODUCER.Value).Declare(ToProperty(OBJ(Core.F_CALL(C_value,ARGS(a1.ToEID()))))) if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else { F_Generate_symbol_ident_symbol(ToSymbol(a1)) @@ -3182,9 +3111,7 @@ func F_Generate_inline_stat_Call (self *Language.Call ,s *ClaireClass ,v *Claire if !ErrorIn(Result) { PRINC("))") F_Generate_object_post_class(C_any,ToClass(a2)) - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() }} } if !ErrorIn(Result) { @@ -3193,9 +3120,7 @@ func F_Generate_inline_stat_Call (self *Language.Call ,s *ClaireClass ,v *Claire F_c_princ_string(v) PRINC(" = ") F_Generate_symbol_ident_symbol(ToSymbol(a1)) - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } else { Result = EID{CFALSE.Id(),0} } @@ -3207,9 +3132,7 @@ func F_Generate_inline_stat_Call (self *Language.Call ,s *ClaireClass ,v *Claire PRINC(" = ") Result = F_Generate_g_expression_Call(self,s) if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else { Result = ToException(Core.C_general_error.Make(MakeString("desing error : inline_stat for ~S").Id(),MakeConstantList(self.Id()).Id())).Close() @@ -3569,10 +3492,8 @@ func F_Generate_g_statement_Handle (self *Language.ClaireHandle ,s *ClaireClass } PRINC("h_index := ClEnv.Index") F_Generate_breakline_void() - PRINC("") PRINC("h_base := ClEnv.Base") F_Generate_breakline_void() - PRINC("") Result = F_Generate_statement_any(self.Arg,Optimize.C_EID,v2,CFALSE.Id()) if !ErrorIn(Result) { if (self.Test == C_any.Id()) { @@ -3607,10 +3528,8 @@ func F_Generate_g_statement_Handle (self *Language.ClaireHandle ,s *ClaireClass if !ErrorIn(Result) { PRINC("ClEnv.Index = h_index") F_Generate_breakline_void() - PRINC("") PRINC("ClEnv.Base = h_base") F_Generate_breakline_void() - PRINC("") Result = F_Generate_statement_any(self.Other,s,v,loop) if !ErrorIn(Result) { if ((s.Id() == Optimize.C_EID.Id()) || @@ -3626,7 +3545,6 @@ func F_Generate_g_statement_Handle (self *Language.ClaireHandle ,s *ClaireClass if !ErrorIn(Result) { F_Generate_breakline_void() F_Generate_close_block_void() - PRINC("") Result = EVOID } } @@ -3680,20 +3598,18 @@ func E_Generate_g_statement_C_cast (self EID,s EID,v EID,err EID,loop EID) EID { func F_Generate_g_statement_Call_slot (self *Language.CallSlot ,s *ClaireClass ,v *ClaireString ,err *ClaireBoolean ,loop *ClaireAny ) EID { // eid body s = void var Result EID - var g0181I *ClaireBoolean + var g0182I *ClaireBoolean var try_1 EID try_1 = F_Generate_g_clean_any(self.Arg) if ErrorIn(try_1) {Result = try_1 } else { - g0181I = ToBoolean(OBJ(try_1)) - if (g0181I == CTRUE) { + g0182I = ToBoolean(OBJ(try_1)) + if (g0182I == CTRUE) { F_c_princ_string(v) PRINC(" = ") Result = F_Generate_g_expression_Call_slot(self,s) if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else { { var varg *ClaireVariable @@ -3753,20 +3669,18 @@ func E_Generate_g_statement_Call_slot (self EID,s EID,v EID,err EID,loop EID) EI func F_Generate_g_statement_Call_table (self *Language.CallTable ,s *ClaireClass ,v *ClaireString ,err *ClaireBoolean ,loop *ClaireAny ) EID { // eid body s = void var Result EID - var g0182I *ClaireBoolean + var g0183I *ClaireBoolean var try_1 EID try_1 = F_Generate_g_clean_any(self.Arg) if ErrorIn(try_1) {Result = try_1 } else { - g0182I = ToBoolean(OBJ(try_1)) - if (g0182I == CTRUE) { + g0183I = ToBoolean(OBJ(try_1)) + if (g0183I == CTRUE) { F_c_princ_string(v) PRINC(" = ") Result = F_Generate_g_expression_Call_table(self,s) if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else { { var varg *ClaireVariable @@ -3876,16 +3790,16 @@ func F_Generate_g_statement_Update (self *Language.Update ,s *ClaireClass ,v *Cl { var p *ClaireAny = self.Selector { var sr *ClaireType if (X.Isa.IsIn(Language.C_Call_slot) == CTRUE) { - { var g0183 *Language.CallSlot = Language.To_CallSlot(X) + { var g0184 *Language.CallSlot = Language.To_CallSlot(X) if (self.Arg == C_add.Id()) { - sr = Core.F_member_type(g0183.Selector.Range) + sr = Core.F_member_type(g0184.Selector.Range) } else { - sr = g0183.Selector.Range + sr = g0184.Selector.Range } } } else if (X.Isa.IsIn(Language.C_Call_array) == CTRUE) { - { var g0184 *Language.CallArray = Language.To_CallArray(X) - if (ToType(g0184.Test).Included(ToType(C_float.Id())) == CTRUE) { + { var g0185 *Language.CallArray = Language.To_CallArray(X) + if (ToType(g0185.Test).Included(ToType(C_float.Id())) == CTRUE) { sr = ToType(C_float.Id()) } else { sr = ToType(C_any.Id()) @@ -3902,7 +3816,7 @@ func F_Generate_g_statement_Update (self *Language.Update ,s *ClaireClass ,v *Cl } } - var g0189I *ClaireBoolean + var g0190I *ClaireBoolean var try_2 EID { var v_and5 *ClaireBoolean @@ -3935,11 +3849,11 @@ func F_Generate_g_statement_Update (self *Language.Update ,s *ClaireClass ,v *Cl } if ErrorIn(try_2) {Result = try_2 } else { - g0189I = ToBoolean(OBJ(try_2)) - if (g0189I == CTRUE) { + g0190I = ToBoolean(OBJ(try_2)) + if (g0190I == CTRUE) { Result = F_Generate_update_statement_Update(self,sr.Class_I()) } else { - var g0190I *ClaireBoolean + var g0191I *ClaireBoolean var try_5 EID { var v_and6 *ClaireBoolean @@ -3968,8 +3882,8 @@ func F_Generate_g_statement_Update (self *Language.Update ,s *ClaireClass ,v *Cl } if ErrorIn(try_5) {Result = try_5 } else { - g0190I = ToBoolean(OBJ(try_5)) - if (g0190I == CTRUE) { + g0191I = ToBoolean(OBJ(try_5)) + if (g0191I == CTRUE) { F_princ_string(v) PRINC(" = ") Result = F_Generate_update_statement_Update(self,sr.Class_I()) @@ -3978,8 +3892,8 @@ func F_Generate_g_statement_Update (self *Language.Update ,s *ClaireClass ,v *Cl { var varg1 *ClaireVariable { var arg_8 *ClaireType if (X.Isa.IsIn(Language.C_Call_slot) == CTRUE) { - { var g0186 *Language.CallSlot = Language.To_CallSlot(X) - arg_8 = ToType(Core.F_domain_I_restriction(ToRestriction(g0186.Selector.Id())).Id()) + { var g0187 *Language.CallSlot = Language.To_CallSlot(X) + arg_8 = ToType(Core.F_domain_I_restriction(ToRestriction(g0187.Selector.Id())).Id()) } } else if (X.Isa.IsIn(Language.C_Call_array) == CTRUE) { arg_8 = ToType(C_integer.Id()) @@ -4031,13 +3945,13 @@ func F_Generate_g_statement_Update (self *Language.Update ,s *ClaireClass ,v *Cl } } if !ErrorIn(Result) { - var g0191I *ClaireBoolean + var g0192I *ClaireBoolean var try_14 EID try_14 = Optimize.F_Compile_g_throw_any(ANY(Core.F_CALL(C_arg,ARGS(X.ToEID())))) if ErrorIn(try_14) {Result = try_14 } else { - g0191I = ToBoolean(OBJ(try_14)) - if (g0191I == CTRUE) { + g0192I = ToBoolean(OBJ(try_14)) + if (g0192I == CTRUE) { try_count = (try_count+1) Result = Core.F_CALL(C_Generate_g_try,ARGS(Core.F_CALL(C_arg,ARGS(X.ToEID())), EID{MakeString("va_arg1").Id(),0}, @@ -4049,13 +3963,13 @@ func F_Generate_g_statement_Update (self *Language.Update ,s *ClaireClass ,v *Cl } } if !ErrorIn(Result) { - var g0192I *ClaireBoolean + var g0193I *ClaireBoolean var try_15 EID try_15 = Optimize.F_Compile_g_throw_any(self.Value) if ErrorIn(try_15) {Result = try_15 } else { - g0192I = ToBoolean(OBJ(try_15)) - if (g0192I == CTRUE) { + g0193I = ToBoolean(OBJ(try_15)) + if (g0193I == CTRUE) { try_count = (try_count+1) Result = Core.F_CALL(C_Generate_g_try,ARGS(self.Value.ToEID(), EID{MakeString("va_arg2").Id(),0}, @@ -4072,9 +3986,7 @@ func F_Generate_g_statement_Update (self *Language.Update ,s *ClaireClass ,v *Cl Result = Core.F_print_any(_Zunfold.Id()) if !ErrorIn(Result) { PRINC(" ------- */") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else { Result = EID{CFALSE.Id(),0} @@ -4094,9 +4006,7 @@ func F_Generate_g_statement_Update (self *Language.Update ,s *ClaireClass ,v *Cl if !ErrorIn(Result) { PRINC("va_arg2") F_Generate_cast_post_class(F_Generate_go_range_Variable(varg2),s) - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else { Result = EID{CFALSE.Id(),0} @@ -4182,20 +4092,18 @@ func F_Generate_update_statement_Update (self *Language.Update ,s *ClaireClass ) Result = Core.F_CALL(C_Generate_g_expression,ARGS(v.ToEID(),EID{ToTypeExpression(OBJ(Core.F_CALL(C_range,ARGS(p.ToEID())))).Class_I().Id(),0})) if !ErrorIn(Result) { PRINC(")") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() }}} } else { - var g0198I *ClaireBoolean + var g0199I *ClaireBoolean if (p.Isa.IsIn(C_relation) == CTRUE) { - { var g0193 *ClaireRelation = ToRelation(p) - g0198I = MakeBoolean((g0193.Store_ask == CTRUE) || (a == Core.C_put_store.Id())) + { var g0194 *ClaireRelation = ToRelation(p) + g0199I = MakeBoolean((g0194.Store_ask == CTRUE) || (a == Core.C_put_store.Id())) } } else { - g0198I = CFALSE + g0199I = CFALSE } - if (g0198I == CTRUE) { + if (g0199I == CTRUE) { if (x.Isa.IsIn(Language.C_Call_table) == CTRUE) { PRINC("F_store_list(ToList(") Result = Core.F_CALL(C_Generate_g_expression,ARGS(p.ToEID(),EID{C_table.Id(),0})) @@ -4207,9 +4115,7 @@ func F_Generate_update_statement_Update (self *Language.Update ,s *ClaireClass ) Result = Core.F_CALL(C_Generate_g_expression,ARGS(v.ToEID(),EID{C_any.Id(),0})) if !ErrorIn(Result) { PRINC(",CTRUE)") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() }}} } else { { var s2 *ClaireClass @@ -4254,16 +4160,14 @@ func F_Generate_update_statement_Update (self *Language.Update ,s *ClaireClass ) } if !ErrorIn(Result) { PRINC(",CTRUE)") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() }} } } } } } else { - var g0199I *ClaireBoolean + var g0200I *ClaireBoolean var try_11 EID if (x.Isa.IsIn(Language.C_Call_array) == CTRUE) { { var arg_12 *ClaireAny @@ -4296,8 +4200,8 @@ func F_Generate_update_statement_Update (self *Language.Update ,s *ClaireClass ) } if ErrorIn(try_11) {Result = try_11 } else { - g0199I = ToBoolean(OBJ(try_11)) - if (g0199I == CTRUE) { + g0200I = ToBoolean(OBJ(try_11)) + if (g0200I == CTRUE) { { var arg_18 *ClaireAny var try_19 EID @@ -4316,12 +4220,10 @@ func F_Generate_update_statement_Update (self *Language.Update ,s *ClaireClass ) Result = Core.F_CALL(C_Generate_g_expression,ARGS(v.ToEID(),EID{C_any.Id(),0})) if !ErrorIn(Result) { PRINC(")") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() }}} } else { - var g0200I *ClaireBoolean + var g0201I *ClaireBoolean var try_20 EID if (x.Isa.IsIn(Language.C_Call_table) == CTRUE) { { @@ -4398,8 +4300,8 @@ func F_Generate_update_statement_Update (self *Language.Update ,s *ClaireClass ) } if ErrorIn(try_20) {Result = try_20 } else { - g0200I = ToBoolean(OBJ(try_20)) - if (g0200I == CTRUE) { + g0201I = ToBoolean(OBJ(try_20)) + if (g0201I == CTRUE) { Result = Core.F_CALL(C_Generate_g_expression,ARGS(p.ToEID(),EID{C_table.Id(),0})) if !ErrorIn(Result) { PRINC(".PutAt(") @@ -4409,9 +4311,7 @@ func F_Generate_update_statement_Update (self *Language.Update ,s *ClaireClass ) Result = Core.F_CALL(C_Generate_g_expression,ARGS(v.ToEID(),EID{C_any.Id(),0})) if !ErrorIn(Result) { PRINC("-1)") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() }}} } else { if (x.Isa.IsIn(Language.C_Call_array) == CTRUE) { @@ -4456,9 +4356,7 @@ func F_Generate_update_statement_Update (self *Language.Update ,s *ClaireClass ) PRINC(" = ") Result = Core.F_CALL(C_Generate_g_expression,ARGS(v.ToEID(),EID{s2.Id(),0})) if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() }} } } @@ -4485,8 +4383,8 @@ func F_Generate_need_shortcut_any (v *ClaireAny ) *ClaireBoolean { // procedure body with s = boolean var Result *ClaireBoolean if (v.Isa.IsIn(Language.C_Call_method) == CTRUE) { - { var g0201 *Language.CallMethod = Language.To_CallMethod(v) - Result = Equal(g0201.Arg.Selector.Id(),C_make_list.Id()) + { var g0202 *Language.CallMethod = Language.To_CallMethod(v) + Result = Equal(g0202.Arg.Selector.Id(),C_make_list.Id()) } } else { Result = CFALSE diff --git a/src/Generate/gosystem.go b/src/Generate/gosystem.go index dab0c70..7d04282 100644 --- a/src/Generate/gosystem.go +++ b/src/Generate/gosystem.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/compile/gosystem.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:21 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:45 *****/ package Generate import (_ "fmt" @@ -407,7 +407,7 @@ func (p *GenerateGoProducer ) Compile (m *ClaireModule ) EID { Optimize.C_compiler.NDynamic = 0 Optimize.C_compiler.NMetheids = 0 { var l1 *ClaireBag = ToBag(F_Generate_parents_list(Reader.F_add_modules_list(MakeConstantList(m.Id()))).Id()) - + Core.F_tformat_string(MakeString("========== START GO COMPILING (~S) with ~S ================ \n"),3,MakeConstantList(m.Id(),l1.Id())) { var va_arg1 *Optimize.OptimizeMetaOPT var va_arg2 *ClaireSet @@ -734,7 +734,6 @@ func F_Generate_dumb_import_module (m *ClaireModule ) { Core.F_gensym_void().Princ() PRINC("() ") F_Generate_new_block_void() - PRINC("") { var x *ClaireAny _ = x @@ -748,7 +747,6 @@ func F_Generate_dumb_import_module (m *ClaireModule ) { F_Generate_cap_short_symbol(ToSymbol(OBJ(Core.F_CALL(C_name,ARGS(x.ToEID()))))) PRINC(".It") F_Generate_breakline_void() - PRINC("") } } } @@ -882,7 +880,7 @@ func E_Generate_clean_duplicates_list (l EID) EID { func (p *GenerateGoProducer ) GenClasses (m *ClaireModule ) EID { // eid body s = void var Result EID - + Core.F_tformat_string(MakeString("===== generate classes for ~S ==== \n"),3,MakeConstantList(m.Id())) { var c *ClaireAny _ = c @@ -1008,7 +1006,6 @@ func (p *GenerateGoProducer ) GenClassDef (c *ClaireClass ) EID { F_Generate_cap_short_symbol(y.Selector.Name) PRINC(" ") F_Generate_interface_I_class(y.Range.Class_I()) - PRINC("") F_Generate_breakline_void() } } @@ -1016,7 +1013,6 @@ func (p *GenerateGoProducer ) GenClassDef (c *ClaireClass ) EID { } if !ErrorIn(Result) { F_Generate_close_block_void() - PRINC("") Result = EVOID } return Result} @@ -1049,9 +1045,8 @@ func E_Generate_gen_cast_function_go_producer (p EID,c EID) EID { // TODO : to complete with the proper test /* The go function for: construct_class?(c:class) [status=0] */ func F_Generate_construct_class_ask_class (c *ClaireClass ) *ClaireBoolean { - if ((ToType(c.Id()).Included(ToType(C_object.Id())) == CTRUE) && - (c.Slots.Length() <= 5)) {return CTRUE - } else {return CFALSE}} + return MakeBoolean((ToType(c.Id()).Included(ToType(C_object.Id())) == CTRUE) && (c.Slots.Length() <= 5)) + } // The EID go function for: construct_class? @ class (throw: false) func E_Generate_construct_class_ask_class (c EID) EID { @@ -1099,7 +1094,6 @@ func (p *GenerateGoProducer ) GenConstruct (c *ClaireClass ) EID { F_iClaire_ident_symbol(y.Selector.Name) PRINC(" ") F_Generate_interface_I_class(y.Range.Class_I()) - PRINC("") } } } @@ -1108,7 +1102,6 @@ func (p *GenerateGoProducer ) GenConstruct (c *ClaireClass ) EID { F_Generate_go_class_class(c) PRINC(" ") F_Generate_new_block_string(MakeString("make")) - PRINC("") Result = EVOID } if !ErrorIn(Result) { @@ -1118,11 +1111,9 @@ func (p *GenerateGoProducer ) GenConstruct (c *ClaireClass ) EID { F_Generate_go_class_class(c) PRINC(")") F_Generate_breakline_void() - PRINC("") PRINC("o.Isa = ") F_Generate_class_ident_class(c) F_Generate_breakline_void() - PRINC("") { var y *ClaireSlot _ = y @@ -1159,7 +1150,6 @@ func (p *GenerateGoProducer ) GenConstruct (c *ClaireClass ) EID { F_iClaire_ident_symbol(y.Selector.Name) F_Generate_cast_post_class(y.Range.Class_I(),F_Generate_rootSlot_slot(y).Range.Class_I()) F_Generate_breakline_void() - PRINC("") } }} } @@ -1168,7 +1158,6 @@ func (p *GenerateGoProducer ) GenConstruct (c *ClaireClass ) EID { PRINC("return o ") F_Generate_breakline_void() F_Generate_close_block_string(MakeString("make")) - PRINC("") Result = EVOID }} } @@ -1184,7 +1173,7 @@ func E_Generate_gen_construct_go_producer (p EID,c EID) EID { func (p *GenerateGoProducer ) GenObjects (m *ClaireModule ) EID { // eid body s = void var Result EID - + Core.F_tformat_string(MakeString("===== generate objects for ~S [graph : ~S] ==== \n"),3,MakeConstantList(m.Id(),Optimize.C_OPT.Properties.Contain_ask(C_mClaire_graph.Id()).Id())) { var x *ClaireAny _ = x @@ -1207,7 +1196,6 @@ func (p *GenerateGoProducer ) GenObjects (m *ClaireModule ) EID { } F_Generate_interface_I_class(arg_1) } - PRINC("") } } else { PRINC("var ") @@ -1303,8 +1291,6 @@ func (p *GenerateGoProducer ) GenObjects (m *ClaireModule ) EID { if ErrorIn(loop_2) {Result = loop_2 break } else { - PRINC("") - loop_2 = EVOID } if ErrorIn(loop_2) {Result = loop_2 break @@ -1323,7 +1309,6 @@ func (p *GenerateGoProducer ) GenObjects (m *ClaireModule ) EID { F_Generate_breakline_void() PRINC("var It *ClaireModule") F_Generate_breakline_void() - PRINC("") { var m1 *ClaireModule = m { var m2 *ClaireModule = m.PartOf for ((m2.Id() != C_claire.Id()) && @@ -1366,20 +1351,17 @@ func E_Generate_getRange_global_variable (x EID) EID { func (p *GenerateGoProducer ) GenMetaLoad (m *ClaireModule ) EID { // eid body s = void var Result EID - + Core.F_tformat_string(MakeString("===== generate meta_load function for ~S ==== \n"),3,MakeConstantList(m.Id())) PRINC("// definition of the meta-model for module ") Result = Core.F_print_any(m.Id()) if !ErrorIn(Result) { PRINC(" ") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } if !ErrorIn(Result) { PRINC("func MetaLoad() ") F_Generate_new_block_void() F_Generate_breakline_void() - PRINC("") Result = p.GenModule(m,m) if !ErrorIn(Result) { F_Generate_breakline_void() @@ -1406,8 +1388,6 @@ func (p *GenerateGoProducer ) GenMetaLoad (m *ClaireModule ) EID { if ErrorIn(loop_1) {Result = loop_1 break } else { - PRINC("") - loop_1 = EVOID } } else { loop_1 = EID{CFALSE.Id(),0} @@ -1445,8 +1425,6 @@ func (p *GenerateGoProducer ) GenMetaLoad (m *ClaireModule ) EID { if ErrorIn(loop_2) {Result = loop_2 break } else { - PRINC("") - loop_2 = EVOID } } else { var g0014I *ClaireBoolean @@ -1464,9 +1442,7 @@ func (p *GenerateGoProducer ) GenMetaLoad (m *ClaireModule ) EID { break } else { PRINC(" */") - F_Generate_breakline_void() - PRINC("") - loop_2 = EVOID + loop_2 = F_Generate_breakline_void().ToEID() } } else { loop_2 = EID{CFALSE.Id(),0} @@ -1516,9 +1492,7 @@ func (p *GenerateGoProducer ) GenMetaLoad (m *ClaireModule ) EID { if ErrorIn(loop_2) {Result = loop_2 break } else { - F_Generate_breakline_void() - PRINC("") - loop_2 = EVOID + loop_2 = F_Generate_breakline_void().ToEID() } } else { loop_2 = F_Generate_statement_any(i,C_void,MakeString("Niet"),CFALSE.Id()) @@ -1554,7 +1528,6 @@ func (p *GenerateGoProducer ) GenModule (m *ClaireModule ,_Zpackage *ClaireModul PRINC("It") } else { F_Generate_go_var_symbol(m.Name) - PRINC("") } PRINC(" = MakeModule(") Result = Core.F_print_any((m.Name.String_I()).Id()) @@ -1563,9 +1536,7 @@ func (p *GenerateGoProducer ) GenModule (m *ClaireModule ,_Zpackage *ClaireModul Result = F_Generate_g_expression_module(m.PartOf,C_module) if !ErrorIn(Result) { PRINC(")") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() }} if !ErrorIn(Result) { { var s *ClaireString @@ -1640,9 +1611,7 @@ func (p *GenerateGoProducer ) GenModule (m *ClaireModule ,_Zpackage *ClaireModul Result = Core.F_print_any((s).Id()) if !ErrorIn(Result) { PRINC(")") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } } @@ -1650,12 +1619,9 @@ func (p *GenerateGoProducer ) GenModule (m *ClaireModule ,_Zpackage *ClaireModul if (Optimize.C_compiler.Debug_ask.Memq(m.Id()) == CTRUE) { PRINC("It.Status = 4") F_Generate_breakline_void() - PRINC("") } PRINC("ClEnv.Module_I = It") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() }} return Result} @@ -1703,7 +1669,6 @@ func (c *GenerateGoProducer ) Declare (p *ClaireProperty ) EID { if (p.Isa.IsIn(C_operation) == CTRUE) { PRINC(",") F_princ_integer(ToOperation(p.Id()).Precedence) - PRINC("") } PRINC(")") Result = EVOID @@ -1833,8 +1798,6 @@ func (p *GenerateGoProducer ) GenFile (f1 *ClaireString ,f2 *ClaireString ) EID if ErrorIn(loop_4) {Result = loop_4 break } else { - PRINC("") - loop_4 = EVOID } if ErrorIn(loop_4) {Result = loop_4 break @@ -1954,7 +1917,7 @@ func (p *GenerateGoProducer ) MakeLambdaFunction (self *ClaireLambda ,_Znom *Cla if ErrorIn(try_1) {Result = try_1 } else { _Zbody = ANY(try_1) - + Core.F_tformat_string(MakeString("===== generate an EID function from a lambda for ~A \n"),3,MakeConstantList((_Znom).Id())) Optimize.C_OPT.Outfile.UseAsOutput() Result = ToGenerateGoProducer(Optimize.C_PRODUCER.Value).GenerateFunctionStart(self, Optimize.C_EID, @@ -1967,9 +1930,7 @@ func (p *GenerateGoProducer ) MakeLambdaFunction (self *ClaireLambda ,_Znom *Cla Result = Core.F_CALL(C_print,ARGS(self.Body.ToEID())) if !ErrorIn(Result) { PRINC(" */") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } else { Result = EID{CFALSE.Id(),0} @@ -2203,9 +2164,7 @@ func (p *GenerateGoProducer ) MakeGoFunction (self *ClaireLambda ,_Znom *ClaireS Result = Core.F_CALL(C_print,ARGS(_Zbody.ToEID())) if !ErrorIn(Result) { PRINC(" ") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() }} } else { Result = EID{CFALSE.Id(),0} @@ -2261,14 +2220,13 @@ func (p *GenerateGoProducer ) MakeGoFunction (self *ClaireLambda ,_Znom *ClaireS if (p.Debug_ask == CTRUE) { PRINC("// use function body compiling ") F_Generate_breakline_void() - PRINC("") } Result = Core.F_CALL(C_Generate_function_body,ARGS(_Zbody.ToEID(),EID{s.Id(),0})) } } }} } else { - + Core.F_tformat_string(MakeString("--- EID function generation (can throw = ~S) \n"),3,MakeConstantList(throw_ask.Id())) throw_ask = CTRUE Optimize.C_compiler.NMetheids = (Optimize.C_compiler.NMetheids+1) Result = ToGenerateGoProducer(Optimize.C_PRODUCER.Value).GenerateFunctionStart(self, @@ -2368,6 +2326,7 @@ func E_Generate_simple_body_ask_any (self EID) EID { // generic case (g_func is true) // simpler case that we apply for Do, Ifs and functional expressions +// however is c_type(exp) is void we need to return CNULL /* The go function for: function_body(self:any,s:class) [status=1] */ func F_Generate_function_body_any (self *ClaireAny ,s *ClaireClass ) EID { // eid body s = void @@ -2375,25 +2334,54 @@ func F_Generate_function_body_any (self *ClaireAny ,s *ClaireClass ) EID { { var _Zret *ClaireString = ToString(IfThenElse((s.Id() != C_void.Id()), MakeString("return ").Id(), MakeString("").Id())) - if (s.Id() == C_boolean.Id()) { - PRINC("if ") - Result = Core.F_CALL(Optimize.C_Compile_bool_exp,ARGS(self.ToEID(),EID{CTRUE.Id(),0})) + var g0028I *ClaireBoolean + var try_1 EID + { + var v_and3 *ClaireBoolean + + var try_2 EID + { var arg_3 *ClaireType + var try_4 EID + try_4 = Core.F_CALL(Optimize.C_c_type,ARGS(self.ToEID())) + if ErrorIn(try_4) {try_2 = try_4 + } else { + arg_3 = ToType(OBJ(try_4)) + try_2 = EID{Equal(arg_3.Id(),C_void.Id()).Id(),0} + } + } + if ErrorIn(try_2) {try_1 = try_2 + } else { + v_and3 = ToBoolean(OBJ(try_2)) + if (v_and3 == CFALSE) {try_1 = EID{CFALSE.Id(),0} + } else { + v_and3 = Core.F__I_equal_any(s.Id(),C_void.Id()) + if (v_and3 == CFALSE) {try_1 = EID{CFALSE.Id(),0} + } else { + try_1 = EID{CTRUE.Id(),0}} + } + } + } + if ErrorIn(try_1) {Result = try_1 + } else { + g0028I = ToBoolean(OBJ(try_1)) + if (g0028I == CTRUE) { + Result = Core.F_CALL(C_Generate_g_expression,ARGS(self.ToEID(),EID{C_void.Id(),0})) if !ErrorIn(Result) { - PRINC(" {return CTRUE") F_Generate_breakline_void() - PRINC("} else {return CFALSE}") - Result = EVOID - } + PRINC("return ") + Result = F_Generate_g_expression_any(CNULL,s) + if !ErrorIn(Result) { + Result = F_Generate_breakline_void().ToEID() + }} } else { F_princ_string(_Zret) PRINC(" ") Result = Core.F_CALL(C_Generate_g_expression,ARGS(self.ToEID(),EID{s.Id(),0})) if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } } + } } return Result} @@ -2411,7 +2399,6 @@ func F_Generate_function_body_If (self *Language.If ,s *ClaireClass ) EID { if !ErrorIn(Result) { PRINC(" ") F_Generate_new_block_string(MakeString("body If")) - PRINC("") Result = EVOID } if !ErrorIn(Result) { @@ -2424,12 +2411,8 @@ func F_Generate_function_body_If (self *Language.If ,s *ClaireClass ) EID { F_Generate_finish_block_void() PRINC(" else ") Result = Core.F_CALL(C_Generate_function_body,ARGS(self.Other.ToEID(),EID{s.Id(),0})) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - } } else { - var g0028I *ClaireBoolean + var g0029I *ClaireBoolean var try_1 EID { var v_or3 *ClaireBoolean @@ -2458,14 +2441,13 @@ func F_Generate_function_body_If (self *Language.If ,s *ClaireClass ) EID { } if ErrorIn(try_1) {Result = try_1 } else { - g0028I = ToBoolean(OBJ(try_1)) - if (g0028I == CTRUE) { + g0029I = ToBoolean(OBJ(try_1)) + if (g0029I == CTRUE) { PRINC("} else {") F_Generate_breakline_void() Result = Core.F_CALL(C_Generate_function_body,ARGS(self.Other.ToEID(),EID{s.Id(),0})) if !ErrorIn(Result) { F_Generate_close_block_string(MakeString("body If")) - PRINC("") Result = EVOID } } else { @@ -2537,9 +2519,7 @@ func F_Generate_procedure_body_method (m *ClaireMethod ,_Zl *ClaireLambda ,_Zbod PRINC("// procedure body with s = ") Result = Core.F_print_any(s.Id()) if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } if !ErrorIn(Result) { if (s.Id() != C_void.Id()) { @@ -2600,9 +2580,7 @@ func F_Generate_eid_body_method (m *ClaireMethod ,_Zbody *ClaireAny ,typeOK *Cla PRINC("// eid body s = ") Result = Core.F_print_any(s.Id()) if !ErrorIn(Result) { - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() } if !ErrorIn(Result) { F_Generate_var_declaration_string(MakeString("Result"),Optimize.C_EID,1) @@ -2678,10 +2656,6 @@ func F_Generate_generate_eid_function_lambda (self *ClaireLambda ,m *ClaireMetho } else { PRINC("return ") Result = F_Generate_print_EID_call_method(m,lv,_Zsig,throw_ask) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - } } if !ErrorIn(Result) { F_Generate_close_block_void() @@ -2719,9 +2693,9 @@ func F_Generate_generate_eid_dual_lambda (self *ClaireLambda ,_Znom *ClaireStrin F_c_princ_string(_Znom) PRINC("(") { var n int = 1 - { var g0029 int = lv.Length() + { var g0030 int = lv.Length() Result= EID{CFALSE.Id(),0} - for (n <= g0029) { + for (n <= g0030) { var loop_1 EID _ = loop_1 { @@ -2794,9 +2768,9 @@ func F_Generate_print_EID_call_method (m *ClaireMethod ,l *ClaireList ,_Zsig *Cl F_Generate_goMethod_method(m) PRINC("(") { var n int = 2 - { var g0032 int = l.Length() + { var g0033 int = l.Length() Result= EID{CFALSE.Id(),0} - for (n <= g0032) { + for (n <= g0033) { var loop_2 EID _ = loop_2 { @@ -2823,9 +2797,9 @@ func F_Generate_print_EID_call_method (m *ClaireMethod ,l *ClaireList ,_Zsig *Cl l = CNIL } { var n int = 1 - { var g0033 int = l.Length() + { var g0034 int = l.Length() Result= EID{CFALSE.Id(),0} - for (n <= g0033) { + for (n <= g0034) { var loop_3 EID _ = loop_3 { @@ -3042,10 +3016,10 @@ func F_Generate_need_debug_ask_any (m *ClaireAny ) *ClaireBoolean { // procedure body with s = boolean var Result *ClaireBoolean if (C_method.Id() == m.Isa.Id()) { - { var g0034 *ClaireMethod = ToMethod(m) - { var p *ClaireProperty = g0034.Selector - Result = MakeBoolean((Optimize.C_compiler.Debug_ask.Memq(g0034.Module_I.Id()) == CTRUE) && - (g0034.Module_I.Id() != C_claire.Id()) && + { var g0035 *ClaireMethod = ToMethod(m) + { var p *ClaireProperty = g0035.Selector + Result = MakeBoolean((Optimize.C_compiler.Debug_ask.Memq(g0035.Module_I.Id()) == CTRUE) && + (g0035.Module_I.Id() != C_claire.Id()) && (p.Id() != Core.C_self_eval.Id()) && (p.Id() != Core.C_execute.Id()) && (p.Id() != Core.C_eval_message.Id()) && @@ -3110,12 +3084,6 @@ func (c *GenerateGoProducer ) DebugIntro (self *ClaireLambda ,x *ClaireMethod ) if ErrorIn(loop_1) {Result = loop_1 break } else { - PRINC("") - loop_1 = EVOID - } - if ErrorIn(loop_1) {Result = loop_1 - break - } else { n = (n+1) } } @@ -3124,9 +3092,7 @@ func (c *GenerateGoProducer ) DebugIntro (self *ClaireLambda ,x *ClaireMethod ) } if !ErrorIn(Result) { PRINC("));") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() }}} } } @@ -3161,9 +3127,7 @@ func (p *GenerateGoProducer ) ReturnResult (s *ClaireClass ,x *ClaireMethod ,_Zr } if !ErrorIn(Result) { PRINC(")") - F_Generate_breakline_void() - PRINC("") - Result = EVOID + Result = F_Generate_breakline_void().ToEID() }}} } else { Result = EID{CFALSE.Id(),0} @@ -3172,7 +3136,6 @@ func (p *GenerateGoProducer ) ReturnResult (s *ClaireClass ,x *ClaireMethod ,_Zr if (s.Id() != C_void.Id()) { PRINC("return ") F_princ_string(_Zres) - PRINC("") Result = EVOID } else { Result = EID{CFALSE.Id(),0} @@ -3202,8 +3165,8 @@ func E_c_princ_function (self EID) EID { func F_Generate_import_princ_string (s *ClaireString ) { // procedure body with s = void { var i int = 1 - { var g0037 int = F_length_string(s) - for (i <= g0037) { + { var g0038 int = F_length_string(s) + for (i <= g0038) { if ((i > 1) || (s.At(i) != '#')) { F_c_princ_char(s.At(i)) diff --git a/src/Kernel/ClBag.go b/src/Kernel/ClBag.go index e31fa76..348ecfa 100644 --- a/src/Kernel/ClBag.go +++ b/src/Kernel/ClBag.go @@ -1,6 +1,6 @@ // ================================================================== // golang experiments Phase 2 - Copyright (C) Yves Caseau -// started on June 21st, 2020-2021 +// started on June 21st, 2020-2022 // clBag.go // ================================================================== @@ -468,7 +468,7 @@ func E_nth_put_list(l EID, i EID, y EID) EID { // this is the version that performs check // moved from Core to Kernel -func (l *ClaireList) NthEqual(i int, y *ClaireAny) EID { +func (l *ClaireList) Nth_equal(i int, y *ClaireAny) EID { if i <= 0 || i > l.Length() { return Cerror(41, MakeInteger(i).Id(), l.Id()) } diff --git a/src/Kernel/ClEnv.go b/src/Kernel/ClEnv.go index ef79ac5..5e5eca7 100644 --- a/src/Kernel/ClEnv.go +++ b/src/Kernel/ClEnv.go @@ -1,5 +1,5 @@ // ================================================================== -// golang experiments Phase 2 - Copyright (C) Yves Caseau +// golang experiments Phase 2 - Copyright (C) Yves Caseau, 2020-22 // started on June 21st, 2020 // clEnv.go // ================================================================== diff --git a/src/Kernel/ClKernel.go b/src/Kernel/ClKernel.go index 0f5d10d..31ce285 100644 --- a/src/Kernel/ClKernel.go +++ b/src/Kernel/ClKernel.go @@ -2,7 +2,7 @@ // microCLAIRE CLAIRE 4 // golang microClaire Kernel - started on June 21st, 2020 // -// Copyright (C) 2020 Yves Caseau. All Rights Reserved. +// Copyright (C) 2020-2022 Yves Caseau. All Rights Reserved. // Redistribution and use in source and binary forms are permitted // provided that source distribution retains this entire copyright // notice and comments. @@ -33,9 +33,10 @@ import ( // | Table of contents | // | Part 1: Description of EID (Entity IDs) | // | Part 2: description of Claire Objects & Imported (Struct) | -// | Part 3: Dummy Classes for instanciation / get/ set | -// | Part 4: unsafe utilities (optimized code for speed) | -/// +---------------------------------------------------------------------------+ +// | Part 3: Global variables (named objects) | +// | Part 4: Dummy Classes for instanciation / get/ set | +// | Part 5: unsafe utilities (optimized code for speed) | +/// +--------------------------------------------------------------------------+ // Entities only exist in the OID forms (128 bits) // Any = Int + Float + *ClaireAny + list (*Vector) + set(*Set) @@ -136,8 +137,19 @@ type eFunc func(*ClaireAny) EID func (p *ClaireAny) ui64() uint64 { return (uint64)(uintptr(unsafe.Pointer(p))) } // func (p *ClaireAny) any() *ClaireAny { return p } // deprecated => Id() -// usefull utility get the pointer as a uintptr -// func (x *ClaireAny) Uip() uintptr { return uintptr(unsafe.Pointer(x)) } +// generic convert to proper EID (the conversion into one of 3 EID type is done dynamically) +func (x *ClaireAny) ToEID() EID { + c := x.Isa + if c == C_integer { + return EID{C__INT, IVAL(ToInteger(x).Value)} + } else if c == C_float { + return EID{C__FLOAT, FVAL(ToFloat(x).Value)} + } else if c == C_char { + return EID{C__CHAR, CVAL(ToChar(x).Value)} + } else { + return EID{x, 0} + } +} // +---------------------------------------------------------------------------+ // | Part 2: description of Claire Objects & Entities | @@ -152,19 +164,6 @@ type ClaireAny struct { func (p *ClaireAny) ToAny() *ClaireAny { return p } // this is the new syntax func (p *ClaireAny) Id() *ClaireAny { return p } // this is the new syntax -// generic convert to proper EID (the conversion into one of 3 EID type is done dynamically) -func (x *ClaireAny) ToEID() EID { - c := x.Isa - if c == C_integer { - return EID{C__INT, IVAL(ToInteger(x).Value)} - } else if c == C_float { - return EID{C__FLOAT, FVAL(ToFloat(x).Value)} - } else if c == C_char { - return EID{C__CHAR, CVAL(ToChar(x).Value)} - } else { - return EID{x, 0} - } -} // ======================================= IMPORTED ================================================== // imported is a root for objects that are defined with golang code (but with isa slot) --------------- @@ -888,6 +887,9 @@ type ClairePair struct { func ToPair(x *ClaireAny) *ClairePair { return (*ClairePair)(unsafe.Pointer(x)) } +// +---------------------------------------------------------------------------+ +// | Part 3: Global variables (named objects) | +// +---------------------------------------------------------------------------+ // some global variables var claireStdout *ClairePort @@ -1164,7 +1166,7 @@ var C_mod *ClaireOperation var C_cons *ClaireOperation // +---------------------------------------------------------------------------+ -// | Part 3: Dummy Classes for instanciation / get/ set | +// | Part 4: Dummy Classes for instanciation / get/ set | // +---------------------------------------------------------------------------+ // THIS IS CRITICAL : WE CANNOT FOOL GOLAND COMPILER WITH POINTERS WHEN DOING A SET @@ -1397,7 +1399,7 @@ func (x *ClaireObject) SetObj(i int, y *ClaireAny) { ((*ClaireDummy6)(unsafe.Pointer(x))).a25 = y } else if i == 26 { ((*ClaireDummy6)(unsafe.Pointer(x))).a26 = y - } else if i == 26 { + } else if i == 27 { ((*ClaireDummy6)(unsafe.Pointer(x))).a27 = y } else if i == 28 { ((*ClaireDummy6)(unsafe.Pointer(x))).a28 = y @@ -1433,7 +1435,7 @@ func (x *ClaireObject) SetFloat(i int, y float64) { } // +---------------------------------------------------------------------------+ -// | Part 4: unsafe utilities (optimized code for speed) | +// | Part 5: unsafe utilities (optimized code for speed) | // +---------------------------------------------------------------------------+ // class inclusion : c <= c2 <=> c.ancestor = (void ... c2.....) with c2 in position n - 1 (len ancestors) diff --git a/src/Kernel/ClReflect.go b/src/Kernel/ClReflect.go index 1d68cd2..df2a42c 100644 --- a/src/Kernel/ClReflect.go +++ b/src/Kernel/ClReflect.go @@ -2,7 +2,7 @@ // microCLAIRE CLAIRE 4 // golang microClaire Kernel - started on June 21st, 2020 // -// Copyright (C) 2020 Yves Caseau. All Rights Reserved. +// Copyright (C) 2020-2022 Yves Caseau. All Rights Reserved. // Redistribution and use in source and binary forms are permitted // provided that source distribution retains this entire copyright // notice and comments. @@ -30,8 +30,8 @@ import ( // | Part 1: reflexive description of Claire Objects & Entities (bootstrap) | // | Part 2: Property methods | // | Part 3: Class & Types methods | -// | Part 4: Utilities (print,p...) | -// | Part 5: Integer & Float | +// | Part 4: Slots and Methods for classes | +// | Part 5: Read & Write | // +---------------------------------------------------------------------------+ // +---------------------------------------------------------------------------+ @@ -1167,9 +1167,11 @@ func BootMethod() { C__7_plus.AddMethod(Signature(C_list.Id(), C_list.Id(), C_list.Id()), 0, MakeFunction2(E_append_list, "append_list")) C_nth.AddMethod(Signature(C_list.Id(), C_integer.Id(), C_any.Id()), 1, MakeFunction2(E_nth_list, "nth_list")) C_nth.AddMethod(Signature(C_tuple.Id(), C_integer.Id(), C_any.Id()), 1, MakeFunction2(E_nth_list, "nth_list")) + C_nth.AddMethod(Signature(C_array.Id(), C_integer.Id(), C_any.Id()), 1, MakeFunction2(E_nth_list, "nth_list")) // v4.0.5 C_nth_plus.AddMethod(Signature(C_list.Id(), C_integer.Id(), C_any.Id(), C_list.Id()), 1, MakeFunction3(E_nth_plus_list, "nth_plus_list")) C_nth_dash.AddMethod(Signature(C_list.Id(), C_integer.Id(), C_list.Id()), 1, MakeFunction2(E_nth_dash_list, "nth_dash_list")) C_nth_equal.AddMethod(Signature(C_list.Id(), C_integer.Id(), C_any.Id(),C_any.Id()), 1, MakeFunction3(E_nth_equal_list, "nth_equal_list")) + C_nth_equal.AddMethod(Signature(C_array.Id(), C_integer.Id(), C_any.Id(),C_any.Id()), 1, MakeFunction3(E_nth_equal_list, "nth_equal_list")) // v4.0.5 C_skip.AddMethod(Signature(C_list.Id(), C_integer.Id(), C_list.Id()), 0, MakeFunction2(E_skip_list, "skip_list")) C_shrink.AddMethod(Signature(C_list.Id(), C_integer.Id(), C_list.Id()), 0, MakeFunction2(E_shrink_list, "shrink_list")) C_slice.AddMethod(Signature(C_list.Id(), C_integer.Id(), C_integer.Id(), C_list.Id()), 0, MakeFunction3(E_slice_list, "slice_list")) @@ -1211,7 +1213,7 @@ func BootMethod() { C_get.AddMethod(Signature(C_string.Id(), C_char.Id(), C_integer.Id()), 0, MakeFunction2(E_get_string, "get_string")) C__inf_equal.AddMethod(Signature(C_string.Id(), C_string.Id(), C_boolean.Id()), 0, MakeFunction2(E_less_string, "_less_string")) C_included.AddMethod(Signature(C_string.Id(), C_string.Id(), C_boolean.Id(), C_integer.Id()), 0, MakeFunction3(E_included_string, "included_string")) - C_nth.AddMethod(Signature(C_string.Id(), C_integer.Id(), C_char.Id()), 1, MakeFunction2(E_nth_string, "E_nth_string")) + C_nth.AddMethod(Signature(C_string.Id(), C_integer.Id(), C_char.Id()), 1, MakeFunction2(E_nth_string, "nth_string")) C_nth_equal.AddMethod(Signature(C_string.Id(), C_integer.Id(), C_char.Id(), C_void.Id()), 0, MakeFunction3(E_nth_set_string, "nth_set_string")) C_string_I.AddMethod(Signature(C_integer.Id(), C_string.Id()), 0, MakeFunction1(E_string_I_integer, "string_I_integer")) C_make_string.AddMethod(Signature(C_integer.Id(), C_char.Id(), C_string.Id()), 0, MakeFunction2(E_make_string_integer, "make_string_integer")) @@ -1326,6 +1328,10 @@ func BootMethod() { } +// +---------------------------------------------------------------------------+ +// | Part 5: Read & Write | +// +---------------------------------------------------------------------------+ + // reflective slot access (use n: index and s : srange) func (p *ClaireObject) SlotGet(n int, s *ClaireClass) *ClaireAny { if s == C_integer { diff --git a/src/Kernel/ClString.go b/src/Kernel/ClString.go index a8487c9..deae121 100644 --- a/src/Kernel/ClString.go +++ b/src/Kernel/ClString.go @@ -2,7 +2,7 @@ // microCLAIRE CLAIRE 4 // golang microClaire Kernel - started on June 21st, 2020 // -// Copyright (C) 2020-2021 Yves Caseau. All Rights Reserved. +// Copyright (C) 2020-2022 Yves Caseau. All Rights Reserved. // Redistribution and use in source and binary forms are permitted // provided that source distribution retains this entire copyright // notice and comments. @@ -24,8 +24,6 @@ package Kernel -// with internet : Humains augmentés et environnement augmenté(s) - bug. - import ( "bufio" "fmt" @@ -48,10 +46,6 @@ import ( // exported vars var C_char_I *ClaireProperty -// add the bootstrap part for lists, sets, tuples and array -func BootString() { - fmt.Println("-------------- Boot String ------------------------") -} // +---------------------------------------------------------------------------+ // | Part 1: Char objects (Runes) | diff --git a/src/Kernel/ClUtil.go b/src/Kernel/ClUtil.go index 41dc87c..03854cc 100644 --- a/src/Kernel/ClUtil.go +++ b/src/Kernel/ClUtil.go @@ -2,7 +2,7 @@ // microCLAIRE CLAIRE 4 // golang microClaire Kernel - started on June 21st, 2020 // -// Copyright (C) 2020-2021 Yves Caseau. All Rights Reserved. +// Copyright (C) 2020-2022 Yves Caseau. All Rights Reserved. // Redistribution and use in source and binary forms are permitted // provided that source distribution retains this entire copyright // notice and comments. @@ -928,37 +928,6 @@ func F_times_integer(n int, m int) EID { func E_times_integer(n EID, m EID) EID { return F_times_integer(INT(n), INT(m)) } -// the classical order comparisons for two ingteger -/*func F__inf_integer(n int, m int) *ClaireBoolean { - if n < m { - return CTRUE - } else { - return CFALSE - } -} -func E__inf_integer(self EID, x EID) EID { return EID{F__inf_integer(INT(self), INT(x)).Id(), 0} } - -func F__inf_equal_integer(n int, m int) *ClaireBoolean { - if n <= m { - return CTRUE - } else { - return CFALSE - } -} -func E__inf_equal_integer(self EID, x EID) EID { - return EID{F__inf_equal_integer(INT(self), INT(x)).Id(), 0} -} - -func F__sup_integer(n int, m int) *ClaireBoolean { - if n > m { - return CTRUE - } else { - return CFALSE - } -} -func E__sup_integer(self EID, x EID) EID { return EID{F__sup_integer(INT(self), INT(x)).Id(), 0} } -*/ - func F__sup_equal_integer(n int, m int) *ClaireBoolean { if n >= m { return CTRUE @@ -982,7 +951,7 @@ func BitVectorContains(s int, x int) *ClaireBoolean { } // +---------------------------------------------------------------------------+ -// | Part 6: Float | +// | Part 4: Float | // +---------------------------------------------------------------------------+ // regular princ with the proper precision diff --git a/src/Language/Language-meta.go b/src/Language/Language-meta.go index 36fe077..f96b5fc 100644 --- a/src/Language/Language-meta.go +++ b/src/Language/Language-meta.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of module Language.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:18 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:42 *****/ package Language import (_ "fmt" @@ -9,7 +9,7 @@ import (_ "fmt" ) //-------- dumb function to prevent import errors -------- -func import_g0328() { +func import_g0329() { _ = Core.It } @@ -1328,7 +1328,7 @@ var C_iClaire *ClaireModule func MetaLoad() { It = MakeModule("Language",C_iClaire) - It.Comment = MakeString("Compiled on Saturday 01-01-2022 16:47:18(v4.0.04), lines:2214, warnings:1,safety:5") + It.Comment = MakeString("Compiled on Sunday 03-13-2022 07:28:42(v4.0.04), lines:2216, warnings:1,safety:5") ClEnv.Module_I = It // definition of the properties @@ -1619,50 +1619,50 @@ func MetaLoad() { _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Call_star.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Call_star,"self_eval_Call_star"),EVAL_Call_star),MakeString("call.cl:102")) - _ = Core.F_attach_method(C_Language_printe.AddMethod(Signature(C_any.Id(),C_property.Id(),C_void.Id()),1,MakeFunction2(E_printe_any,"printe_any")),MakeString("call.cl:109")) + _ = Core.F_attach_method(C_Language_printe.AddMethod(Signature(C_any.Id(),C_property.Id(),C_void.Id()),1,MakeFunction2(E_printe_any,"printe_any")),MakeString("call.cl:110")) _ = Core.F_attach_method(C_Language_sugar_ask.AddMethod(Signature(C_any.Id(), C_any.Id(), C_any.Id(), C_any.Id(), - C_boolean.Id()),0,MakeFunction4(E_sugar_ask_any,"sugar_ask_any")),MakeString("call.cl:119")) + C_boolean.Id()),0,MakeFunction4(E_sugar_ask_any,"sugar_ask_any")),MakeString("call.cl:120")) C_Assign = MakeClass("Assign",C_Basic_instruction,C_claire) Core.F_close_slot(C_Assign.AddSlot(C_var,ToType(C_any.Id()),CNULL)) Core.F_close_slot(C_Assign.AddSlot(C_arg,ToType(C_any.Id()),CNULL)) - _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Assign.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Assign_Language,"self_print_Assign_Language")),MakeString("call.cl:140")) + _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Assign.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Assign_Language,"self_print_Assign_Language")),MakeString("call.cl:141")) - _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Assign.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Assign,"self_eval_Assign"),EVAL_Assign),MakeString("call.cl:143")) + _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Assign.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Assign,"self_eval_Assign"),EVAL_Assign),MakeString("call.cl:144")) C_Gassign = MakeClass("Gassign",C_Basic_instruction,C_claire) Core.F_close_slot(C_Gassign.AddSlot(C_var,ToType(Core.C_global_variable.Id()),CNULL)) Core.F_close_slot(C_Gassign.AddSlot(C_arg,ToType(C_any.Id()),CNULL)) - _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Gassign.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Gassign_Language,"self_print_Gassign_Language")),MakeString("call.cl:154")) + _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Gassign.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Gassign_Language,"self_print_Gassign_Language")),MakeString("call.cl:155")) - _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Gassign.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Gassign,"self_eval_Gassign"),EVAL_Gassign),MakeString("call.cl:157")) + _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Gassign.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Gassign,"self_eval_Gassign"),EVAL_Gassign),MakeString("call.cl:158")) C_And = MakeClass("And",C_Control_structure,C_claire) Core.F_close_slot(C_And.AddSlot(C_args,ToType(C_list.Id()),ToType(C_any.Id()).EmptyList().Id())) - _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_And.Id(),C_void.Id()),1,MakeFunction1(E_self_print_And_Language,"self_print_And_Language")),MakeString("call.cl:163")) + _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_And.Id(),C_void.Id()),1,MakeFunction1(E_self_print_And_Language,"self_print_And_Language")),MakeString("call.cl:164")) - _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_And.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_And,"self_eval_And"),EVAL_And),MakeString("call.cl:165")) + _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_And.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_And,"self_eval_And"),EVAL_And),MakeString("call.cl:166")) C_Or = MakeClass("Or",C_Control_structure,C_claire) Core.F_close_slot(C_Or.AddSlot(C_args,ToType(C_list.Id()),ToType(C_any.Id()).EmptyList().Id())) - _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Or.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Or_Language,"self_print_Or_Language")),MakeString("call.cl:170")) + _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Or.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Or_Language,"self_print_Or_Language")),MakeString("call.cl:171")) - _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Or.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Or,"self_eval_Or"),EVAL_Or),MakeString("call.cl:172")) + _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Or.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Or,"self_eval_Or"),EVAL_Or),MakeString("call.cl:173")) C_Quote = MakeClass("Quote",C_Basic_instruction,C_claire) Core.F_close_slot(C_Quote.AddSlot(C_arg,ToType(C_any.Id()),CNULL)) - _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Quote.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Quote_Language,"self_print_Quote_Language")),MakeString("call.cl:177")) + _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Quote.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Quote_Language,"self_print_Quote_Language")),MakeString("call.cl:178")) - _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Quote.Id(),C_any.Id()),0,MakeFunction1(E_self_eval_Quote,"self_eval_Quote"),EVAL_Quote),MakeString("call.cl:178")) + _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Quote.Id(),C_any.Id()),0,MakeFunction1(E_self_eval_Quote,"self_eval_Quote"),EVAL_Quote),MakeString("call.cl:179")) C_Optimized_instruction = MakeClass("Optimized_instruction",C_Complex_instruction,C_claire) @@ -1670,48 +1670,48 @@ func MetaLoad() { Core.F_close_slot(C_Call_method.AddSlot(C_arg,ToType(C_method.Id()),CNULL)) Core.F_close_slot(C_Call_method.AddSlot(C_args,ToType(C_list.Id()),ToType(C_any.Id()).EmptyList().Id())) - _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Call_method.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Call_method_Language,"self_print_Call_method_Language")),MakeString("call.cl:195")) + _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Call_method.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Call_method_Language,"self_print_Call_method_Language")),MakeString("call.cl:196")) - _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Call_method.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Call_method,"self_eval_Call_method"),EVAL_Call_method),MakeString("call.cl:200")) + _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Call_method.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Call_method,"self_eval_Call_method"),EVAL_Call_method),MakeString("call.cl:201")) C_Call_method1 = MakeClass("Call_method1",C_Call_method,C_claire) - _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Call_method1.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Call_method1,"self_eval_Call_method1"),EVAL_Call_method1),MakeString("call.cl:205")) + _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Call_method1.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Call_method1,"self_eval_Call_method1"),EVAL_Call_method1),MakeString("call.cl:206")) C_Call_method2 = MakeClass("Call_method2",C_Call_method,C_claire) - _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Call_method2.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Call_method2,"self_eval_Call_method2"),EVAL_Call_method2),MakeString("call.cl:212")) + _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Call_method2.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Call_method2,"self_eval_Call_method2"),EVAL_Call_method2),MakeString("call.cl:213")) C_Language_Call_method3 = MakeClass("Call_method3",C_Call_method,It) - _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Language_Call_method3.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Call_method3,"self_eval_Call_method3"),EVAL_Language_Call_method3),MakeString("call.cl:219")) + _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Language_Call_method3.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Call_method3,"self_eval_Call_method3"),EVAL_Language_Call_method3),MakeString("call.cl:220")) C_Call_slot = MakeClass("Call_slot",C_Optimized_instruction,C_claire) Core.F_close_slot(C_Call_slot.AddSlot(C_selector,ToType(C_slot.Id()),CNULL)) Core.F_close_slot(C_Call_slot.AddSlot(C_arg,ToType(C_any.Id()),CNULL)) Core.F_close_slot(C_Call_slot.AddSlot(C_iClaire_test,ToType(C_boolean.Id()),CNULL)) - _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Call_slot.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Call_slot_Language,"self_print_Call_slot_Language")),MakeString("call.cl:225")) + _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Call_slot.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Call_slot_Language,"self_print_Call_slot_Language")),MakeString("call.cl:226")) - _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Call_slot.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Call_slot,"self_eval_Call_slot"),EVAL_Call_slot),MakeString("call.cl:226")) + _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Call_slot.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Call_slot,"self_eval_Call_slot"),EVAL_Call_slot),MakeString("call.cl:227")) C_Call_array = MakeClass("Call_array",C_Optimized_instruction,C_claire) Core.F_close_slot(C_Call_array.AddSlot(C_selector,ToType(C_any.Id()),CNULL)) Core.F_close_slot(C_Call_array.AddSlot(C_arg,ToType(C_any.Id()),CNULL)) Core.F_close_slot(C_Call_array.AddSlot(C_iClaire_test,ToType(C_any.Id()),CNULL)) - _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Call_array.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Call_array_Language,"self_print_Call_array_Language")),MakeString("call.cl:234")) + _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Call_array.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Call_array_Language,"self_print_Call_array_Language")),MakeString("call.cl:235")) - _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Call_array.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Call_array,"self_eval_Call_array"),EVAL_Call_array),MakeString("call.cl:236")) + _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Call_array.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Call_array,"self_eval_Call_array"),EVAL_Call_array),MakeString("call.cl:237")) C_Call_table = MakeClass("Call_table",C_Optimized_instruction,C_claire) Core.F_close_slot(C_Call_table.AddSlot(C_selector,ToType(C_table.Id()),CNULL)) Core.F_close_slot(C_Call_table.AddSlot(C_arg,ToType(C_any.Id()),CNULL)) Core.F_close_slot(C_Call_table.AddSlot(C_iClaire_test,ToType(C_boolean.Id()),CNULL)) - _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Call_table.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Call_table_Language,"self_print_Call_table_Language")),MakeString("call.cl:242")) + _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Call_table.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Call_table_Language,"self_print_Call_table_Language")),MakeString("call.cl:243")) - _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Call_table.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Call_table,"self_eval_Call_table"),EVAL_Call_table),MakeString("call.cl:245")) + _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Call_table.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Call_table,"self_eval_Call_table"),EVAL_Call_table),MakeString("call.cl:246")) C_Update = MakeClass("Update",C_Optimized_instruction,C_claire) Core.F_close_slot(C_Update.AddSlot(C_selector,ToType(C_any.Id()),CNULL)) @@ -1719,46 +1719,46 @@ func MetaLoad() { Core.F_close_slot(C_Update.AddSlot(C_value,ToType(C_any.Id()),CNULL)) Core.F_close_slot(C_Update.AddSlot(C_var,ToType(C_any.Id()),CNULL)) - _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Update.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Update_Language,"self_print_Update_Language")),MakeString("call.cl:256")) + _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Update.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Update_Language,"self_print_Update_Language")),MakeString("call.cl:257")) - _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Update.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Update,"self_eval_Update"),EVAL_Update),MakeString("call.cl:262")) + _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Update.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Update,"self_eval_Update"),EVAL_Update),MakeString("call.cl:263")) C_Super = MakeClass("Super",C_Control_structure,C_claire) Core.F_close_slot(C_Super.AddSlot(C_selector,ToType(C_property.Id()),CNULL)) Core.F_close_slot(C_Super.AddSlot(C_iClaire_cast_to,ToType(C_type.Id()),CNULL)) Core.F_close_slot(C_Super.AddSlot(C_args,ToType(C_list.Id()),ToType(C_any.Id()).EmptyList().Id())) - _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Super.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Super_Language,"self_print_Super_Language")),MakeString("call.cl:278")) + _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Super.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Super_Language,"self_print_Super_Language")),MakeString("call.cl:279")) - _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Super.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Super,"self_eval_Super"),EVAL_Super),MakeString("call.cl:287")) + _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Super.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Super,"self_eval_Super"),EVAL_Super),MakeString("call.cl:288")) C_Cast = MakeClass("Cast",C_Basic_instruction,C_claire) Core.F_close_slot(C_Cast.AddSlot(C_arg,ToType(C_any.Id()),CNULL)) Core.F_close_slot(C_Cast.AddSlot(C_iClaire_set_arg,ToType(C_type.Id()),CNULL)) - _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Cast.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Cast_Language,"self_print_Cast_Language")),MakeString("call.cl:297")) + _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Cast.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Cast_Language,"self_print_Cast_Language")),MakeString("call.cl:298")) - _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Cast.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Cast,"self_eval_Cast"),EVAL_Cast),MakeString("call.cl:303")) + _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Cast.Id(),C_any.Id()),1,MakeFunction1(E_self_eval_Cast,"self_eval_Cast"),EVAL_Cast),MakeString("call.cl:304")) C_Return = MakeClass("Return",C_Basic_instruction,C_claire) Core.F_close_slot(C_Return.AddSlot(C_arg,ToType(C_any.Id()),CNULL)) - _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Return.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Return_Language,"self_print_Return_Language")),MakeString("call.cl:314")) + _ = Core.F_attach_method(C_self_print.AddMethod(Signature(C_Return.Id(),C_void.Id()),1,MakeFunction1(E_self_print_Return_Language,"self_print_Return_Language")),MakeString("call.cl:315")) - _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Return.Id(),C_error.Id()),1,MakeFunction1(E_self_eval_Return,"self_eval_Return"),EVAL_Return),MakeString("call.cl:315")) + _ = Core.F_attach_method(Core.C_self_eval.AddEvalMethod(Signature(C_Return.Id(),C_error.Id()),1,MakeFunction1(E_self_eval_Return,"self_eval_Return"),EVAL_Return),MakeString("call.cl:316")) _ = Core.F_attach_method(C_substitution.AddMethod(Signature(C_any.Id(), C_Variable.Id(), C_any.Id(), - C_any.Id()),0,MakeFunction3(E_substitution_any,"substitution_any")),MakeString("call.cl:336")) + C_any.Id()),0,MakeFunction3(E_substitution_any,"substitution_any")),MakeString("call.cl:337")) - _ = Core.F_attach_method(C_Language_occurrence.AddMethod(Signature(C_any.Id(),C_Variable.Id(),C_integer.Id()),0,MakeFunction2(E_occurrence_any,"occurrence_any")),MakeString("call.cl:349")) + _ = Core.F_attach_method(C_Language_occurrence.AddMethod(Signature(C_any.Id(),C_Variable.Id(),C_integer.Id()),0,MakeFunction2(E_occurrence_any,"occurrence_any")),MakeString("call.cl:350")) - _ = Core.F_attach_method(C_occurchange.AddMethod(Signature(C_any.Id(),C_Variable.Id(),C_boolean.Id()),0,MakeFunction2(E_occurchange_any,"occurchange_any")),MakeString("call.cl:357")) + _ = Core.F_attach_method(C_occurchange.AddMethod(Signature(C_any.Id(),C_Variable.Id(),C_boolean.Id()),0,MakeFunction2(E_occurchange_any,"occurchange_any")),MakeString("call.cl:358")) - _ = Core.F_attach_method(C_Language_occurexact.AddMethod(Signature(C_any.Id(),C_Variable.Id(),C_integer.Id()),0,MakeFunction2(E_Language_occurexact_any,"Language_occurexact_any")),MakeString("call.cl:373")) + _ = Core.F_attach_method(C_Language_occurexact.AddMethod(Signature(C_any.Id(),C_Variable.Id(),C_integer.Id()),0,MakeFunction2(E_Language_occurexact_any,"Language_occurexact_any")),MakeString("call.cl:374")) - _ = Core.F_attach_method(C_Language_instruction_copy.AddMethod(Signature(C_any.Id(),C_any.Id()),0,MakeFunction1(E_instruction_copy_any,"instruction_copy_any")),MakeString("call.cl:387")) + _ = Core.F_attach_method(C_Language_instruction_copy.AddMethod(Signature(C_any.Id(),C_any.Id()),0,MakeFunction1(E_instruction_copy_any,"instruction_copy_any")),MakeString("call.cl:388")) C_If = MakeClass("If",C_Control_structure,C_claire) Core.F_close_slot(C_If.AddSlot(C_iClaire_test,ToType(C_any.Id()),CNULL)) @@ -2180,13 +2180,13 @@ func MetaLoad() { _ = Core.F_attach_method(C_Language_eventMethod.AddMethod(Signature(C_property.Id(),C_void.Id()),0,MakeFunction1(E_eventMethod_property,"eventMethod_property")),MakeString("define.cl:667")) - _ = Core.F_attach_method(C_Language_jito.AddMethod(Signature(C_any.Id(),C_any.Id()),1,MakeFunction1(E_Language_jito_any,"Language_jito_any")),MakeString("define.cl:707")) + _ = Core.F_attach_method(C_Language_jito.AddMethod(Signature(C_any.Id(),C_any.Id()),1,MakeFunction1(E_Language_jito_any,"Language_jito_any")),MakeString("define.cl:708")) - _ = Core.F_attach_method(C_Language_letJito.AddMethod(Signature(C_Let.Id(),C_any.Id()),1,MakeFunction1(E_Language_letJito_Let,"Language_letJito_Let")),MakeString("define.cl:725")) + _ = Core.F_attach_method(C_Language_letJito.AddMethod(Signature(C_Let.Id(),C_any.Id()),1,MakeFunction1(E_Language_letJito_Let,"Language_letJito_Let")),MakeString("define.cl:726")) - _ = Core.F_attach_method(C_Language_makeJito.AddMethod(Signature(C_Call.Id(),C_void.Id()),1,MakeFunction1(E_Language_makeJito_Call,"Language_makeJito_Call")),MakeString("define.cl:751")) + _ = Core.F_attach_method(C_Language_makeJito.AddMethod(Signature(C_Call.Id(),C_void.Id()),1,MakeFunction1(E_Language_makeJito_Call,"Language_makeJito_Call")),MakeString("define.cl:752")) - _ = Core.F_attach_method(C_Language_makeCallMatch.AddMethod(Signature(C_restriction.Id(),C_list.Id(),C_boolean.Id()),0,MakeFunction2(E_Language_makeCallMatch_restriction,"Language_makeCallMatch_restriction")),MakeString("define.cl:759")) + _ = Core.F_attach_method(C_Language_makeCallMatch.AddMethod(Signature(C_restriction.Id(),C_list.Id(),C_boolean.Id()),0,MakeFunction2(E_Language_makeCallMatch_restriction,"Language_makeCallMatch_restriction")),MakeString("define.cl:760")) C_table.Open = ClEnv.Final C_class.Open = ClEnv.Final diff --git a/src/Language/call.go b/src/Language/call.go index ac56214..b266647 100644 --- a/src/Language/call.go +++ b/src/Language/call.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/meta/call.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:18 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:42 *****/ package Language import (_ "fmt" @@ -56,10 +56,7 @@ func (self *Call ) SelfPrint () EID { Result = F_lbreak_void() if !ErrorIn(Result) { Result = F_printe_any(_Za.At(2-1),_Zs) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}} + }}} } else if (_Zs.Id() == C_nth.Id()) { if (_Za.Length() == 3) { Result = F_printexp_any(_Za.At(1-1),CFALSE) @@ -117,10 +114,7 @@ func (self *Call ) SelfPrint () EID { Result = F_lbreak_integer(2) if !ErrorIn(Result) { Result = Core.F_CALL(C_print,ARGS(_Za.At(4-1).ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}}} + }}}} } else { var g0070I *ClaireBoolean { var arg_1 *ClaireAny @@ -146,10 +140,7 @@ func (self *Call ) SelfPrint () EID { Result = F_lbreak_integer(2) if !ErrorIn(Result) { Result = Core.F_CALL(C_print,ARGS(ToList(OBJ(Core.F_CALL(C_args,ARGS(a.ToEID())))).At(2-1).ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}}} + }}}} } else { Result = Core.F_CALL(C_print,ARGS(_Za.At(1-1).ToEID())) if !ErrorIn(Result) { @@ -160,10 +151,7 @@ func (self *Call ) SelfPrint () EID { Result = F_lbreak_integer(2) if !ErrorIn(Result) { Result = Core.F_CALL(C_print,ARGS(a.ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}} + }}} } } } @@ -203,10 +191,7 @@ func (self *Call ) SelfPrint () EID { Result = F_lbreak_integer(2) if !ErrorIn(Result) { Result = Core.F_CALL(C_print,ARGS(ToList(OBJ(Core.F_CALL(C_args,ARGS(a.ToEID())))).At(2-1).ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}}} + }}}} } else { Result = Core.F_CALL(C_print,ARGS(_Za.At(1-1).ToEID())) if !ErrorIn(Result) { @@ -217,10 +202,7 @@ func (self *Call ) SelfPrint () EID { Result = F_lbreak_integer(2) if !ErrorIn(Result) { Result = Core.F_CALL(C_print,ARGS(_Za.At(3-1).ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}} + }}} } } } @@ -235,10 +217,7 @@ func (self *Call ) SelfPrint () EID { Result = F_lbreak_integer(2) if !ErrorIn(Result) { Result = Core.F_CALL(C_print,ARGS(_Za.At(3-1).ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}} + }}} } else if ((_Zs.Id() == C_delete.Id()) && (_Za.At(1-1).Isa.IsIn(C_property) == CTRUE)) { Result = Core.F_CALL(C_print,ARGS(_Za.At(1-1).ToEID())) @@ -250,10 +229,7 @@ func (self *Call ) SelfPrint () EID { Result = F_lbreak_integer(2) if !ErrorIn(Result) { Result = Core.F_CALL(C_print,ARGS(_Za.At(3-1).ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}} + }}} } else if ((_Za.At(1-1) == ClEnv.Id()) && (_Za.Length() == 1)) { Result = Core.F_print_any(_Zs.Id()) @@ -299,10 +275,7 @@ func (self *Call_plus ) SelfPrint () EID { if !ErrorIn(Result) { PRINC(".") Result = Core.F_print_any(self.Selector.Id()) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }} + } return Result} // The EID go function for: self_print @ Call+ (throw: true) @@ -512,16 +485,12 @@ func F_printe_any (self *ClaireAny ,s *ClaireProperty ) EID { g0073I = CFALSE } if (g0073I == CTRUE) { - if (CTRUE == CTRUE) { - PRINC("(") - Result = Core.F_CALL(C_print,ARGS(self.ToEID())) - if !ErrorIn(Result) { - PRINC(")") - Result = EVOID - } - } else { - Result = F_printexp_any(self,CTRUE) - } + PRINC("(") + Result = Core.F_CALL(C_print,ARGS(self.ToEID())) + if !ErrorIn(Result) { + PRINC(")") + Result = EVOID + } } else { Result = F_printexp_any(self,CTRUE) } @@ -606,10 +575,7 @@ func (self *Assign ) SelfPrint () EID { Result = F_lbreak_integer(2) if !ErrorIn(Result) { Result = F_printexp_any(ToList(OBJ(Core.F_CALL(C_args,ARGS(a.ToEID())))).At(2-1),CTRUE) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}} + }}} } else { Result = Core.F_CALL(C_print,ARGS(self.ClaireVar.ToEID())) if !ErrorIn(Result) { @@ -617,10 +583,7 @@ func (self *Assign ) SelfPrint () EID { Result = F_lbreak_integer(2) if !ErrorIn(Result) { Result = F_printexp_any(a,CTRUE) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}} + }} } if !ErrorIn(Result) { { @@ -697,10 +660,7 @@ func (self *Gassign ) SelfPrint () EID { Result = F_lbreak_integer(2) if !ErrorIn(Result) { Result = Core.F_CALL(C_print,ARGS(ToList(OBJ(Core.F_CALL(C_args,ARGS(a.ToEID())))).At(2-1).ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}} + }}} } else { Result = Core.F_print_any(self.ClaireVar.Id()) if !ErrorIn(Result) { @@ -708,10 +668,7 @@ func (self *Gassign ) SelfPrint () EID { Result = F_lbreak_integer(2) if !ErrorIn(Result) { Result = Core.F_CALL(C_print,ARGS(a.ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}} + }} } if !ErrorIn(Result) { { @@ -1201,7 +1158,7 @@ func (self *CallArray ) SelfEval () EID { if ErrorIn(try_4) {Result = try_4 } else { arg_2 = ANY(try_4) - Result = Core.F_nth_array(ToArray(arg_1),ToInteger(arg_2).Value) + Result = ToArray(arg_1).Nth(ToInteger(arg_2).Value) } } } @@ -1287,10 +1244,7 @@ func (self *Update ) SelfPrint () EID { if !ErrorIn(Result) { PRINC(") := ") Result = Core.F_CALL(C_print,ARGS(self.Value.ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}} + }} return Result} // The EID go function for: self_print @ Update (throw: true) @@ -1463,10 +1417,7 @@ func (x *Cast ) SelfPrint () EID { if !ErrorIn(Result) { PRINC(" as ") Result = F_printexp_any(x.SetArg.Id(),CFALSE) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }} + } return Result} // The EID go function for: self_print @ Cast (throw: true) diff --git a/src/Language/control.go b/src/Language/control.go index dc257e3..eb353fb 100644 --- a/src/Language/control.go +++ b/src/Language/control.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/meta/control.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:18 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:42 *****/ package Language import (_ "fmt" @@ -62,10 +62,7 @@ func (self *If ) Printstat () EID { if !ErrorIn(Result) { Core.C_pretty.Index = (Core.C_pretty.Index-3) Result = self.Printelse() - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}} + }} return Result} // The EID go function for: printstat @ If (throw: true) @@ -133,10 +130,7 @@ func (self *If ) Printelse () EID { if !ErrorIn(Result) { Core.C_pretty.Index = (Core.C_pretty.Index-3) Result = g0130.Printelse() - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}} + }}} } } else if (Equal(e,CNIL.Id()) != CTRUE) { { var _Zl int = Core.C_pretty.Index @@ -146,10 +140,7 @@ func (self *If ) Printelse () EID { PRINC("else ") F_set_level_integer(1) Result = Core.F_CALL(C_print,ARGS(e.ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }} + } if !ErrorIn(Result) { { var va_arg1 *Core.PrettyPrinter @@ -364,10 +355,7 @@ func (self *Let ) SelfPrint () EID { Result = F_printexp_any(self.Value,CFALSE) if !ErrorIn(Result) { Result = self.Printbody() - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}} + }} if !ErrorIn(Result) { { var va_arg1 *Core.PrettyPrinter @@ -402,20 +390,14 @@ func (self *Let ) Printbody () EID { if !ErrorIn(Result) { Core.C_pretty.Index = (Core.C_pretty.Index-4) Result = g0138.Printbody() - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}} + }}} } } else { PRINC(" in ") Result = F_lbreak_integer(2) if !ErrorIn(Result) { Result = Core.F_CALL(C_print,ARGS(a.ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }} + } } } return Result} @@ -468,10 +450,7 @@ func (self *When ) SelfPrint () EID { Result = F_lbreak_integer(2) if !ErrorIn(Result) { Result = Core.F_CALL(C_print,ARGS(self.Arg.ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}} + }}} if !ErrorIn(Result) { if (self.Other != CNULL) { PRINC(" ") @@ -480,10 +459,7 @@ func (self *When ) SelfPrint () EID { PRINC("else ") F_set_level_integer(1) Result = Core.F_CALL(C_print,ARGS(self.Other.ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }} + } } else { Result = EID{CFALSE.Id(),0} } @@ -561,10 +537,7 @@ func (self *Let_plus ) SelfPrint () EID { Result = F_lbreak_integer(2) if !ErrorIn(Result) { Result = Core.F_CALL(C_print,ARGS(To_Let(l.At(2-1)).Value.ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}} + }}} if !ErrorIn(Result) { { var va_arg1 *Core.PrettyPrinter @@ -626,10 +599,7 @@ func (self *Let_star ) SelfPrint () EID { Result = F_printexp_any(self.Value,CFALSE) if !ErrorIn(Result) { Result = To_Let(l).Printbody() - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}} + }} } else { PRINC("(") { var _Zf *ClaireBoolean = CTRUE @@ -662,10 +632,7 @@ func (self *Let_star ) SelfPrint () EID { if !ErrorIn(Result) { PRINC(") := ") Result = F_printexp_any(self.Value,CFALSE) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }} + } } if !ErrorIn(Result) { { @@ -728,10 +695,7 @@ func (self *For ) SelfPrint () EID { Result = EID{C__INT,IVAL(va_arg2)} } }} - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}} + }} return Result} // The EID go function for: self_print @ For (throw: true) @@ -2079,8 +2043,6 @@ func (self *Case ) SelfPrint () EID { if ErrorIn(loop_1) {Result = loop_1 break } else { - PRINC("") - loop_1 = EVOID } } else { loop_1 = EID{CFALSE.Id(),0} @@ -2092,8 +2054,6 @@ func (self *Case ) SelfPrint () EID { if ErrorIn(loop_1) {Result = loop_1 break } else { - PRINC("") - loop_1 = EVOID }}} if ErrorIn(loop_1) {Result = loop_1 break @@ -2233,10 +2193,7 @@ func (self *While ) SelfPrint () EID { Result = F_lbreak_integer(2) if !ErrorIn(Result) { Result = Core.F_CALL(C_print,ARGS(self.Arg.ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}} + }} if !ErrorIn(Result) { { var va_arg1 *Core.PrettyPrinter @@ -2393,10 +2350,7 @@ func (self *ClaireHandle ) SelfPrint () EID { if !ErrorIn(Result) { PRINC(" ") Result = Core.F_CALL(C_print,ARGS(self.Other.ToEID())) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }}}} + }}} if !ErrorIn(Result) { { var va_arg1 *Core.PrettyPrinter diff --git a/src/Language/define.go b/src/Language/define.go index 149cbc1..5d871f5 100644 --- a/src/Language/define.go +++ b/src/Language/define.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/meta/define.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:18 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:42 *****/ package Language import (_ "fmt" @@ -87,18 +87,11 @@ func (self *Defobj ) SelfPrint () EID { if !ErrorIn(Result) { PRINC(" := ") Result = F_printexp_any(v,CFALSE) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }} + } } else { self.Ident.Princ() PRINC(" :: ") Result = F_printexp_any(v,CFALSE) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - } } } } @@ -175,8 +168,6 @@ func (self *Defclass ) SelfPrint () EID { if ErrorIn(loop_1) {Result = loop_1 break } else { - PRINC("") - loop_1 = EVOID }} } if ErrorIn(loop_1) {Result = loop_1 @@ -370,10 +361,7 @@ func (self *Defvar ) SelfPrint () EID { if !ErrorIn(Result) { PRINC(" := ") Result = F_printexp_any(self.Arg,CFALSE) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - }} + } return Result} // The EID go function for: self_print @ Defvar (throw: true) @@ -3784,10 +3772,29 @@ func F_Language_jito_any (self *ClaireAny ) EID { o_ask = CTRUE} } } - + { var arg_2 *ClaireList + var try_3 EID + { + var v_bag_arg *ClaireAny + try_3= EID{ToType(CEMPTY.Id()).EmptyList().Id(),0} + ToList(OBJ(try_3)).AddFast(g0312.Id()) + var try_4 EID + try_4 = F_static_type_any(g0312.SetArg) + if ErrorIn(try_4) {try_3 = try_4 + } else { + v_bag_arg = ANY(try_4) + ToList(OBJ(try_3)).AddFast(v_bag_arg)} + } + if ErrorIn(try_3) {Result = try_3 + } else { + arg_2 = ToList(OBJ(try_3)) + Result = Core.F_tformat_string(MakeString("-- Iteration jito: ~S (~S)\n"),3,arg_2) + } + } + if !ErrorIn(Result) { if (o_ask == CTRUE) { v.Range = ToType(C_integer.Id()) - + Core.F_tformat_string(MakeString("-- jito:put range ~S as integer\n"),3,MakeConstantList(v.Id())) } Result = F_Language_jito_any(s) if !ErrorIn(Result) { @@ -3805,45 +3812,52 @@ func F_Language_jito_any (self *ClaireAny ) EID { } else { Result = EID{CFALSE.Id(),0} } - }} + }}} } } } } + } else if (self.Isa.IsIn(C_While) == CTRUE) { + { var g0314 *While = To_While(self) + Result = F_Language_jito_any(g0314.Test) + if !ErrorIn(Result) { + Result = F_Language_jito_any(g0314.Arg) + } + } } else if (self.Isa.IsIn(C_Construct) == CTRUE) { - { var g0314 *Construct = To_Construct(self) - - Result = F_Language_jito_any(g0314.Args.Id()) + { var g0315 *Construct = To_Construct(self) + Core.F_tformat_string(MakeString("-- Construct jito: ~S\n"),3,MakeConstantList(g0315.Id())) + Result = F_Language_jito_any(g0315.Args.Id()) } } else if (self.Isa.IsIn(C_Exists) == CTRUE) { - { var g0315 *Exists = To_Exists(self) - Result = F_Language_jito_any(g0315.SetArg) + { var g0316 *Exists = To_Exists(self) + Result = F_Language_jito_any(g0316.SetArg) if !ErrorIn(Result) { - Result = F_Language_jito_any(g0315.Arg) + Result = F_Language_jito_any(g0316.Arg) if !ErrorIn(Result) { - Result = F_Language_jito_any(g0315.Other) + Result = F_Language_jito_any(g0316.Other) }} } } else if (self.Isa.IsIn(C_Handle) == CTRUE) { - { var g0316 *ClaireHandle = To_ClaireHandle(self) - if (C_class.Id() != g0316.Test.Isa.Id()) { - Result = ToException(Core.C_general_error.Make(MakeString("syntax: [try %S] must use a class").Id(),MakeConstantList(g0316.Test).Id())).Close() + { var g0317 *ClaireHandle = To_ClaireHandle(self) + if (C_class.Id() != g0317.Test.Isa.Id()) { + Result = ToException(Core.C_general_error.Make(MakeString("syntax: [try %S] must use a class").Id(),MakeConstantList(g0317.Test).Id())).Close() } else { Result = EID{CFALSE.Id(),0} } if !ErrorIn(Result) { - Result = F_Language_jito_any(g0316.Arg) + Result = F_Language_jito_any(g0317.Arg) if !ErrorIn(Result) { - Result = F_Language_jito_any(g0316.Other) + Result = F_Language_jito_any(g0317.Other) }} } } else if (self.Isa.IsIn(C_Definition) == CTRUE) { - { var g0317 *Definition = To_Definition(self) - if (F_Language_fast_definition_ask_class(g0317.Arg) == CTRUE) { + { var g0318 *Definition = To_Definition(self) + if (F_Language_fast_definition_ask_class(g0318.Arg) == CTRUE) { { var va_arg1 *ClaireAny var va_arg2 *ClaireClass - va_arg1 = g0317.Id() + va_arg1 = g0318.Id() va_arg2 = C_Language_DefFast va_arg1.Isa = va_arg2 Result = EID{va_arg2.Id(),0} @@ -3872,7 +3886,7 @@ func (self *Let ) LetJito () EID { { var v *ClaireVariable = self.ClaireVar { var x *ClaireAny = self.Value { var untyped *ClaireBoolean = MakeBoolean((v.Range.Id() == CNULL)) - + Core.F_tformat_string(MakeString("Let Jito with var ~S => ~S\n"),3,MakeConstantList(v.Id(),untyped.Id())) if (untyped == CTRUE) { if (x.Isa.IsIn(C_List) == CTRUE) { { var t *ClaireType = ToType(OBJ(Core.F_CALL(C_of,ARGS(x.ToEID())))) @@ -3905,7 +3919,7 @@ func (self *Let ) LetJito () EID { } } if !ErrorIn(Result) { - Result = EID{CFALSE.Id(),0} + Result = Core.F_tformat_string(MakeString("--- let Jito ~S:~S (~S)\n"),3,MakeConstantList(v.Id(),v.Range.Id(),x)) } } else { Result = EID{CFALSE.Id(),0} @@ -3953,40 +3967,40 @@ func (self *Call ) MakeJito () EID { { var larg *ClaireList = self.Args { var n int = larg.Length() { var m *ClaireAny = CNULL - var g0323I *ClaireBoolean + var g0324I *ClaireBoolean { var v_and5 *ClaireBoolean v_and5 = Equal(p.Id(),Core.C_write.Id()) - if (v_and5 == CFALSE) {g0323I = CFALSE + if (v_and5 == CFALSE) {g0324I = CFALSE } else { { var p2 *ClaireAny = self.Args.At(1-1) if (p2.Isa.IsIn(C_property) == CTRUE) { - { var g0319 *ClaireProperty = ToProperty(p2) - v_and5 = MakeBoolean((g0319.Inverse.Id() == CNULL) && (g0319.Store_ask != CTRUE) && (g0319.IfWrite == CNULL)) + { var g0320 *ClaireProperty = ToProperty(p2) + v_and5 = MakeBoolean((g0320.Inverse.Id() == CNULL) && (g0320.Store_ask != CTRUE) && (g0320.IfWrite == CNULL)) } } else { v_and5 = CFALSE } } - if (v_and5 == CFALSE) {g0323I = CFALSE + if (v_and5 == CFALSE) {g0324I = CFALSE } else { - g0323I = CTRUE} + g0324I = CTRUE} } } - if (g0323I == CTRUE) { + if (g0324I == CTRUE) { p = C_write_fast self.Selector = C_write_fast } - var g0324I *ClaireBoolean + var g0325I *ClaireBoolean { var v_and5 *ClaireBoolean v_and5 = Core.F__inf_equal_integer(p.Open,1) - if (v_and5 == CFALSE) {g0324I = CFALSE + if (v_and5 == CFALSE) {g0325I = CFALSE } else { v_and5 = Core.F__inf_equal_integer(p.Restrictions.Length(),12) - if (v_and5 == CFALSE) {g0324I = CFALSE + if (v_and5 == CFALSE) {g0325I = CFALSE } else { { var arg_1 *ClaireAny { @@ -3996,7 +4010,7 @@ func (self *Call ) MakeJito () EID { arg_1= CFALSE.Id() for _,x_iter = range(p.Restrictions.ValuesO()){ x = ToRestriction(x_iter) - var g0325I *ClaireBoolean + var g0326I *ClaireBoolean { var arg_2 *ClaireBoolean { var arg_3 *ClaireAny { @@ -4014,9 +4028,9 @@ func (self *Call ) MakeJito () EID { } arg_2 = Core.F_not_any(arg_3) } - g0325I = arg_2.Not + g0326I = arg_2.Not } - if (g0325I == CTRUE) { + if (g0326I == CTRUE) { arg_1 = CTRUE.Id() break } @@ -4024,13 +4038,13 @@ func (self *Call ) MakeJito () EID { } v_and5 = Core.F_not_any(arg_1) } - if (v_and5 == CFALSE) {g0324I = CFALSE + if (v_and5 == CFALSE) {g0325I = CFALSE } else { - g0324I = CTRUE} + g0325I = CTRUE} } } } - if (g0324I == CTRUE) { + if (g0325I == CTRUE) { { var lt *ClaireList var try_4 EID { @@ -4054,7 +4068,7 @@ func (self *Call ) MakeJito () EID { if ErrorIn(try_4) {Result = try_4 } else { lt = ToList(OBJ(try_4)) - + Core.F_tformat_string(MakeString("-- call jito: ~S : ~S\n"),3,MakeConstantList(self.Id(),lt.Id())) { var x *ClaireRestriction _ = x @@ -4075,15 +4089,15 @@ func (self *Call ) MakeJito () EID { Result = EID{CFALSE.Id(),0} } if !ErrorIn(Result) { - var g0326I *ClaireBoolean + var g0327I *ClaireBoolean if (C_method.Id() == m.Isa.Id()) { - { var g0321 *ClaireMethod = ToMethod(m) - g0326I = MakeBoolean((g0321.Functional.Id() == CNULL)).Not + { var g0322 *ClaireMethod = ToMethod(m) + g0327I = MakeBoolean((g0322.Functional.Id() == CNULL)).Not } } else { - g0326I = CFALSE + g0327I = CFALSE } - if (g0326I == CTRUE) { + if (g0327I == CTRUE) { { var va_arg1 *ClaireAny var va_arg2 *ClaireClass @@ -4138,9 +4152,9 @@ func F_Language_makeCallMatch_restriction (x *ClaireRestriction ,lt *ClaireList } else { { var arg_1 *ClaireAny { var i int = 1 - { var g0327 int = n + { var g0328 int = n arg_1= CFALSE.Id() - for (i <= g0327) { + for (i <= g0328) { if (ToType(lt.At(i-1)).Included(ToType(ld.ValuesO()[i-1])) != CTRUE) { arg_1 = CTRUE.Id() break diff --git a/src/Language/pretty.go b/src/Language/pretty.go index a43e83f..dd0404e 100644 --- a/src/Language/pretty.go +++ b/src/Language/pretty.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/meta/pretty.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:18 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:42 *****/ package Language import (_ "fmt" @@ -49,7 +49,6 @@ func E_no_eval_Instruction (self EID) EID { func F_self_print_unbound_symbol_Language (self *ClaireUnboundSymbol ) { // procedure body with s = void self.Name.Princ() - PRINC("") } // The EID go function for: self_print @ unbound_symbol (throw: false) @@ -105,10 +104,6 @@ func F_ppvariable_Variable (self *ClaireVariable ) EID { self.Pname.Princ() PRINC(":") Result = F_printexp_any(self.Range.Id(),CFALSE) - if !ErrorIn(Result) { - PRINC("") - Result = EVOID - } } else { self.Pname.Princ() Result = EVOID diff --git a/src/Optimize/Optimize-meta.go b/src/Optimize/Optimize-meta.go index c1de762..7c08847 100644 --- a/src/Optimize/Optimize-meta.go +++ b/src/Optimize/Optimize-meta.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of module Optimize.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:21 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:45 *****/ package Optimize import (_ "fmt" @@ -11,7 +11,7 @@ import (_ "fmt" ) //-------- dumb function to prevent import errors -------- -func import_g0325() { +func import_g0329() { _ = Core.It _ = Language.It _ = Reader.It @@ -222,6 +222,40 @@ var C_PENIBLE *Core.GlobalVariable var C_Compile__starname_star *Core.GlobalVariable var C_Optimize__staradd_method2_star *Core.GlobalVariable var C_Optimize__equalsig_ask *ClaireOperation /*obj*/ +var C_Compile_can_throw_status *ClaireProperty // Compile/"can_throw_status" +var C_s_throw *ClaireProperty // claire/"s_throw" +var C_Optimize_legal_ask *ClaireProperty // Optimize/"legal?" +var C_Optimize_selector_register *ClaireProperty // Optimize/"selector_register" +var C_Optimize_stable_ask *ClaireProperty // Optimize/"stable?" +var C_Compile_c_gc_ask *ClaireProperty // Compile/"c_gc?" +var C_Compile_notice *ClaireProperty // Compile/"notice" +var C_Optimize_c_warn *ClaireProperty // Optimize/"c_warn" +var C_Optimize_open_message *ClaireProperty // Optimize/"open_message" +var C_Compile_stupid_t *ClaireProperty // Compile/"stupid_t" +var C_Optimize_extended_ask *ClaireProperty // Optimize/"extended?" +var C_Optimize_extends *ClaireProperty // Optimize/"extends" +var C_Optimize_sort_abstract_I *ClaireProperty // Optimize/"sort_abstract!" +var C_Optimize_notOpt *ClaireProperty // Optimize/"notOpt" +var C_Compile_update_write_ask *ClaireProperty // Compile/"update_write?" +var C_Optimize_sort_abstract_ask *ClaireProperty // Optimize/"sort_abstract?" +var C_Optimize_pmember *ClaireProperty // Optimize/"pmember" +var C_Optimize_enumerate_code *ClaireProperty // Optimize/"enumerate_code" +var C_Optimize_c_code_method *ClaireProperty // Optimize/"c_code_method" +var C_Optimize_range_infers_for *ClaireProperty // Optimize/"range_infers_for" +var C_Optimize_range_infers *ClaireProperty // Optimize/"range_infers" +var C_Optimize_range_sets *ClaireProperty // Optimize/"range_sets" +var C_Compile_return_type *ClaireProperty // Compile/"return_type" +var C_Compile_Variable_I *ClaireProperty // Compile/"Variable!" +var C_Compile_identifiable_ask *ClaireProperty // Compile/"identifiable?" +var C_Optimize_c_inline *ClaireProperty // Optimize/"c_inline" +var C_Optimize_bound_variables *ClaireProperty // Optimize/"bound_variables" +var C_Optimize_c_substitution *ClaireProperty // Optimize/"c_substitution" +var C_Optimize_c_inline_arg_ask *ClaireProperty // Optimize/"c_inline_arg?" +var C_Optimize_restriction_I *ClaireProperty // Optimize/"restriction!" +var C_Optimize_c_inline_ask *ClaireProperty // Optimize/"c_inline?" +var C_Optimize_c_boolean *ClaireProperty // Optimize/"c_boolean" +var C_findr *ClaireProperty // claire/"findr" +var C_dmatch_ask *ClaireProperty // claire/"dmatch?" var C_Optimize_use_range *ClaireProperty // Optimize/"use_range" var C_Optimize_inline_optimize_ask *ClaireProperty // Optimize/"inline_optimize?" var C_Optimize_daccess *ClaireProperty // Optimize/"daccess" @@ -237,6 +271,9 @@ var C_Optimize_c_code_nth *ClaireProperty // Optimize/"c_code_nth" var C_Optimize_c_code_belong *ClaireProperty // Optimize/"c_code_belong" var C_Optimize_c_code_not *ClaireProperty // Optimize/"c_code_not" var C_Optimize_Update_ask *ClaireProperty // Optimize/"Update?" +var C_Optimize_Call_method_I *ClaireProperty // Optimize/"Call_method!" +var C_Optimize_nth_type_check *ClaireProperty // Optimize/"nth_type_check" +var C_Optimize_extendedTest_ask *ClaireProperty // Optimize/"extendedTest?" var C_safety *ClaireProperty // claire/"safety" var C_home *ClaireProperty // claire/"home" var C_Compile_instructions *ClaireProperty // Compile/"instructions" @@ -282,43 +319,6 @@ var C_Optimize_get_sort *ClaireProperty // Optimize/"get_sort" var C_Optimize_selector_psort *ClaireProperty // Optimize/"selector_psort" var C_Optimize_c_srange *ClaireProperty // Optimize/"c_srange" var C_Optimize_g_throw1 *ClaireProperty // Optimize/"g_throw1" -var C_Optimize_notOpt *ClaireProperty // Optimize/"notOpt" -var C_Compile_update_write_ask *ClaireProperty // Compile/"update_write?" -var C_Compile_can_throw_status *ClaireProperty // Compile/"can_throw_status" -var C_s_throw *ClaireProperty // claire/"s_throw" -var C_Optimize_legal_ask *ClaireProperty // Optimize/"legal?" -var C_Optimize_selector_register *ClaireProperty // Optimize/"selector_register" -var C_Optimize_stable_ask *ClaireProperty // Optimize/"stable?" -var C_Compile_c_gc_ask *ClaireProperty // Compile/"c_gc?" -var C_Compile_notice *ClaireProperty // Compile/"notice" -var C_Optimize_c_warn *ClaireProperty // Optimize/"c_warn" -var C_Optimize_open_message *ClaireProperty // Optimize/"open_message" -var C_Compile_stupid_t *ClaireProperty // Compile/"stupid_t" -var C_Optimize_extended_ask *ClaireProperty // Optimize/"extended?" -var C_Optimize_extends *ClaireProperty // Optimize/"extends" -var C_Optimize_sort_abstract_I *ClaireProperty // Optimize/"sort_abstract!" -var C_Optimize_sort_abstract_ask *ClaireProperty // Optimize/"sort_abstract?" -var C_Optimize_pmember *ClaireProperty // Optimize/"pmember" -var C_Optimize_enumerate_code *ClaireProperty // Optimize/"enumerate_code" -var C_Optimize_c_code_method *ClaireProperty // Optimize/"c_code_method" -var C_Optimize_range_infers_for *ClaireProperty // Optimize/"range_infers_for" -var C_Optimize_range_infers *ClaireProperty // Optimize/"range_infers" -var C_Optimize_range_sets *ClaireProperty // Optimize/"range_sets" -var C_Compile_return_type *ClaireProperty // Compile/"return_type" -var C_Compile_Variable_I *ClaireProperty // Compile/"Variable!" -var C_Compile_identifiable_ask *ClaireProperty // Compile/"identifiable?" -var C_Optimize_c_inline *ClaireProperty // Optimize/"c_inline" -var C_Optimize_bound_variables *ClaireProperty // Optimize/"bound_variables" -var C_Optimize_c_substitution *ClaireProperty // Optimize/"c_substitution" -var C_Optimize_c_inline_arg_ask *ClaireProperty // Optimize/"c_inline_arg?" -var C_Optimize_restriction_I *ClaireProperty // Optimize/"restriction!" -var C_Optimize_c_inline_ask *ClaireProperty // Optimize/"c_inline?" -var C_Optimize_c_boolean *ClaireProperty // Optimize/"c_boolean" -var C_findr *ClaireProperty // claire/"findr" -var C_dmatch_ask *ClaireProperty // claire/"dmatch?" -var C_Optimize_Call_method_I *ClaireProperty // Optimize/"Call_method!" -var C_Optimize_nth_type_check *ClaireProperty // Optimize/"nth_type_check" -var C_Optimize_extendedTest_ask *ClaireProperty // Optimize/"extendedTest?" var C_Optimize_case_branch *ClaireProperty // Optimize/"case_branch" var C_Optimize_case_substitution *ClaireProperty // Optimize/"case_substitution" var C_Optimize_infers_from *ClaireProperty // Optimize/"infers_from" @@ -345,6 +345,7 @@ var C_Optimize_compile_if_write *ClaireProperty // Optimize/"compile_if_write" var C_Optimize_demon_function *ClaireProperty // Optimize/"demon_function" var C_Optimize_compileEventMethod *ClaireProperty // Optimize/"compileEventMethod" var C_Optimize_demon_substitution *ClaireProperty // Optimize/"demon_substitution" +var C_Compile_Do_I *ClaireProperty // Compile/"Do!" var C_env *ClaireProperty // claire/"env" var It *ClaireModule var C_Compile *ClaireModule @@ -352,10 +353,44 @@ var C_Compile *ClaireModule func MetaLoad() { It = MakeModule("Optimize",C_Compile) - It.Comment = MakeString("Compiled on Saturday 01-01-2022 16:47:21(v4.0.04), lines:3011, warnings:1,safety:5") + It.Comment = MakeString("Compiled on Sunday 03-13-2022 07:28:45(v4.0.04), lines:3017, warnings:1,safety:5") ClEnv.Module_I = It // definition of the properties + C_Compile_can_throw_status = MakeProperty("can_throw_status",1,C_Compile) + C_s_throw = MakeProperty("s_throw",1,C_claire) + C_Optimize_legal_ask = MakeProperty("legal?",1,It) + C_Optimize_selector_register = MakeProperty("selector_register",1,It) + C_Optimize_stable_ask = MakeProperty("stable?",1,It) + C_Compile_c_gc_ask = MakeProperty("c_gc?",1,C_Compile) + C_Compile_notice = MakeProperty("notice",1,C_Compile) + C_Optimize_c_warn = MakeProperty("c_warn",1,It) + C_Optimize_open_message = MakeProperty("open_message",1,It) + C_Compile_stupid_t = MakeProperty("stupid_t",1,C_Compile) + C_Optimize_extended_ask = MakeProperty("extended?",1,It) + C_Optimize_extends = MakeProperty("extends",1,It) + C_Optimize_sort_abstract_I = MakeProperty("sort_abstract!",1,It) + C_Optimize_notOpt = MakeProperty("notOpt",1,It) + C_Compile_update_write_ask = MakeProperty("update_write?",1,C_Compile) + C_Optimize_sort_abstract_ask = MakeProperty("sort_abstract?",1,It) + C_Optimize_pmember = MakeProperty("pmember",1,It) + C_Optimize_enumerate_code = MakeProperty("enumerate_code",1,It) + C_Optimize_c_code_method = MakeProperty("c_code_method",1,It) + C_Optimize_range_infers_for = MakeProperty("range_infers_for",1,It) + C_Optimize_range_infers = MakeProperty("range_infers",1,It) + C_Optimize_range_sets = MakeProperty("range_sets",1,It) + C_Compile_return_type = MakeProperty("return_type",1,C_Compile) + C_Compile_Variable_I = MakeProperty("Variable!",1,C_Compile) + C_Compile_identifiable_ask = MakeProperty("identifiable?",1,C_Compile) + C_Optimize_c_inline = MakeProperty("c_inline",1,It) + C_Optimize_bound_variables = MakeProperty("bound_variables",1,It) + C_Optimize_c_substitution = MakeProperty("c_substitution",1,It) + C_Optimize_c_inline_arg_ask = MakeProperty("c_inline_arg?",1,It) + C_Optimize_restriction_I = MakeProperty("restriction!",1,It) + C_Optimize_c_inline_ask = MakeProperty("c_inline?",1,It) + C_Optimize_c_boolean = MakeProperty("c_boolean",1,It) + C_findr = MakeProperty("findr",1,C_claire) + C_dmatch_ask = MakeProperty("dmatch?",1,C_claire) C_Optimize_use_range = MakeProperty("use_range",1,It) C_Optimize_inline_optimize_ask = MakeProperty("inline_optimize?",1,It) C_Optimize_daccess = MakeProperty("daccess",1,It) @@ -371,6 +406,9 @@ func MetaLoad() { C_Optimize_c_code_belong = MakeProperty("c_code_belong",1,It) C_Optimize_c_code_not = MakeProperty("c_code_not",1,It) C_Optimize_Update_ask = MakeProperty("Update?",1,It) + C_Optimize_Call_method_I = MakeProperty("Call_method!",1,It) + C_Optimize_nth_type_check = MakeProperty("nth_type_check",1,It) + C_Optimize_extendedTest_ask = MakeProperty("extendedTest?",1,It) C_safety = MakeProperty("safety",2,C_claire) C_home = MakeProperty("home",1,C_claire) C_Compile_instructions = MakeProperty("instructions",2,C_Compile) @@ -416,43 +454,6 @@ func MetaLoad() { C_Optimize_selector_psort = MakeProperty("selector_psort",1,It) C_Optimize_c_srange = MakeProperty("c_srange",1,It) C_Optimize_g_throw1 = MakeProperty("g_throw1",1,It) - C_Optimize_notOpt = MakeProperty("notOpt",1,It) - C_Compile_update_write_ask = MakeProperty("update_write?",1,C_Compile) - C_Compile_can_throw_status = MakeProperty("can_throw_status",1,C_Compile) - C_s_throw = MakeProperty("s_throw",1,C_claire) - C_Optimize_legal_ask = MakeProperty("legal?",1,It) - C_Optimize_selector_register = MakeProperty("selector_register",1,It) - C_Optimize_stable_ask = MakeProperty("stable?",1,It) - C_Compile_c_gc_ask = MakeProperty("c_gc?",1,C_Compile) - C_Compile_notice = MakeProperty("notice",1,C_Compile) - C_Optimize_c_warn = MakeProperty("c_warn",1,It) - C_Optimize_open_message = MakeProperty("open_message",1,It) - C_Compile_stupid_t = MakeProperty("stupid_t",1,C_Compile) - C_Optimize_extended_ask = MakeProperty("extended?",1,It) - C_Optimize_extends = MakeProperty("extends",1,It) - C_Optimize_sort_abstract_I = MakeProperty("sort_abstract!",1,It) - C_Optimize_sort_abstract_ask = MakeProperty("sort_abstract?",1,It) - C_Optimize_pmember = MakeProperty("pmember",1,It) - C_Optimize_enumerate_code = MakeProperty("enumerate_code",1,It) - C_Optimize_c_code_method = MakeProperty("c_code_method",1,It) - C_Optimize_range_infers_for = MakeProperty("range_infers_for",1,It) - C_Optimize_range_infers = MakeProperty("range_infers",1,It) - C_Optimize_range_sets = MakeProperty("range_sets",1,It) - C_Compile_return_type = MakeProperty("return_type",1,C_Compile) - C_Compile_Variable_I = MakeProperty("Variable!",1,C_Compile) - C_Compile_identifiable_ask = MakeProperty("identifiable?",1,C_Compile) - C_Optimize_c_inline = MakeProperty("c_inline",1,It) - C_Optimize_bound_variables = MakeProperty("bound_variables",1,It) - C_Optimize_c_substitution = MakeProperty("c_substitution",1,It) - C_Optimize_c_inline_arg_ask = MakeProperty("c_inline_arg?",1,It) - C_Optimize_restriction_I = MakeProperty("restriction!",1,It) - C_Optimize_c_inline_ask = MakeProperty("c_inline?",1,It) - C_Optimize_c_boolean = MakeProperty("c_boolean",1,It) - C_findr = MakeProperty("findr",1,C_claire) - C_dmatch_ask = MakeProperty("dmatch?",1,C_claire) - C_Optimize_Call_method_I = MakeProperty("Call_method!",1,It) - C_Optimize_nth_type_check = MakeProperty("nth_type_check",1,It) - C_Optimize_extendedTest_ask = MakeProperty("extendedTest?",1,It) C_Optimize_case_branch = MakeProperty("case_branch",1,It) C_Optimize_case_substitution = MakeProperty("case_substitution",1,It) C_Optimize_infers_from = MakeProperty("infers_from",1,It) @@ -479,6 +480,7 @@ func MetaLoad() { C_Optimize_demon_function = MakeProperty("demon_function",1,It) C_Optimize_compileEventMethod = MakeProperty("compileEventMethod",1,It) C_Optimize_demon_substitution = MakeProperty("demon_substitution",1,It) + C_Compile_Do_I = MakeProperty("Do!",1,C_Compile) C_env = MakeProperty("env",2,C_claire) // instructions from module sources @@ -1075,6 +1077,8 @@ func MetaLoad() { _ = Core.F_attach_method(C_Optimize_c_boolean.AddMethod(Signature(C_any.Id(),C_any.Id()),1,MakeFunction1(E_Optimize_c_boolean_any,"Optimize_c_boolean_any")),MakeString("otool.cl:544")) + _ = Core.F_attach_method(C_Compile_Do_I.AddMethod(Signature(C_list.Id(),C_any.Id()),0,MakeFunction1(E_Compile_Do_I_list,"Compile_Do!_list")),MakeString("otool.cl:548")) + C_Optimize_ambiguous = ToKeyword(new(ClaireKeyword).IsNamed(C_keyword,MakeSymbol("ambiguous",It))) @@ -1446,19 +1450,19 @@ func MetaLoad() { C_list.Id(), C_any.Id()),1,MakeFunction4(E_Optimize_analyze_I_class,"Optimize_analyze!_class")),MakeString("odefine.cl:151")) - _ = Core.F_attach_method(C_c_code.AddMethod(Signature(Language.C_Defobj.Id(),C_class.Id(),C_any.Id()),1,MakeFunction2(E_c_code_Defobj,"c_code_Defobj")),MakeString("odefine.cl:169")) + _ = Core.F_attach_method(C_c_code.AddMethod(Signature(Language.C_Defobj.Id(),C_class.Id(),C_any.Id()),1,MakeFunction2(E_c_code_Defobj,"c_code_Defobj")),MakeString("odefine.cl:173")) - _ = Core.F_attach_method(C_c_code.AddMethod(Signature(Language.C_Defclass.Id(),C_class.Id(),C_any.Id()),1,MakeFunction2(E_c_code_Defclass,"c_code_Defclass")),MakeString("odefine.cl:188")) + _ = Core.F_attach_method(C_c_code.AddMethod(Signature(Language.C_Defclass.Id(),C_class.Id(),C_any.Id()),1,MakeFunction2(E_c_code_Defclass,"c_code_Defclass")),MakeString("odefine.cl:192")) - _ = Core.F_attach_method(C_c_type.AddMethod(Signature(Language.C_Defmethod.Id(),C_type.Id()),0,MakeFunction1(E_c_type_Defmethod,"c_type_Defmethod")),MakeString("odefine.cl:194")) + _ = Core.F_attach_method(C_c_type.AddMethod(Signature(Language.C_Defmethod.Id(),C_type.Id()),0,MakeFunction1(E_c_type_Defmethod,"c_type_Defmethod")),MakeString("odefine.cl:198")) - _ = Core.F_attach_method(C_c_code.AddMethod(Signature(Language.C_Defmethod.Id(),C_any.Id()),1,MakeFunction1(E_c_code_Defmethod,"c_code_Defmethod")),MakeString("odefine.cl:233")) + _ = Core.F_attach_method(C_c_code.AddMethod(Signature(Language.C_Defmethod.Id(),C_any.Id()),1,MakeFunction1(E_c_code_Defmethod,"c_code_Defmethod")),MakeString("odefine.cl:237")) - _ = Core.F_attach_method(C_Optimize_type_extension.AddMethod(Signature(C_string.Id(),C_string.Id()),0,MakeFunction1(E_Optimize_type_extension_string,"Optimize_type_extension_string")),MakeString("odefine.cl:239")) + _ = Core.F_attach_method(C_Optimize_type_extension.AddMethod(Signature(C_string.Id(),C_string.Id()),0,MakeFunction1(E_Optimize_type_extension_string,"Optimize_type_extension_string")),MakeString("odefine.cl:243")) - _ = Core.F_attach_method(C_Optimize_sort_pattern_ask.AddMethod(Signature(C_list.Id(),C_any.Id(),C_boolean.Id()),1,MakeFunction2(E_Optimize_sort_pattern_ask_list,"Optimize_sort_pattern?_list")),MakeString("odefine.cl:249")) + _ = Core.F_attach_method(C_Optimize_sort_pattern_ask.AddMethod(Signature(C_list.Id(),C_any.Id(),C_boolean.Id()),1,MakeFunction2(E_Optimize_sort_pattern_ask_list,"Optimize_sort_pattern?_list")),MakeString("odefine.cl:253")) - _ = Core.F_attach_method(C_Optimize_sort_code.AddMethod(Signature(Language.C_Defmethod.Id(),C_list.Id(),C_any.Id()),1,MakeFunction2(E_Optimize_sort_code_Defmethod,"Optimize_sort_code_Defmethod")),MakeString("odefine.cl:294")) + _ = Core.F_attach_method(C_Optimize_sort_code.AddMethod(Signature(Language.C_Defmethod.Id(),C_list.Id(),C_any.Id()),1,MakeFunction2(E_Optimize_sort_code_Defmethod,"Optimize_sort_code_Defmethod")),MakeString("odefine.cl:298")) _ = Core.F_attach_method(C_add_method.AddMethod(Signature(C_property.Id(), C_list.Id(), @@ -1466,7 +1470,7 @@ func MetaLoad() { C_integer.Id(), C_function.Id(), C_method.Id(), - C_method.Id()),0,MakeFunction6(E_add_method_property2,"add_method_property2")),MakeString("odefine.cl:301")) + C_method.Id()),0,MakeFunction6(E_add_method_property2,"add_method_property2")),MakeString("odefine.cl:305")) { var expr EID @@ -1485,72 +1489,72 @@ func MetaLoad() { C_any.Id(), C_any.Id(), C_function.Id(), - C_any.Id()),1,MakeFunction5(E_Optimize_add_method_I_method,"Optimize_add_method!_method")),MakeString("odefine.cl:316")) + C_any.Id()),1,MakeFunction5(E_Optimize_add_method_I_method,"Optimize_add_method!_method")),MakeString("odefine.cl:320")) - _ = Core.F_attach_method(C_Optimize_extract_signature_I.AddMethod(Signature(C_list.Id(),C_list.Id()),1,MakeFunction1(E_Optimize_extract_signature_I_list,"Optimize_extract_signature!_list")),MakeString("odefine.cl:332")) + _ = Core.F_attach_method(C_Optimize_extract_signature_I.AddMethod(Signature(C_list.Id(),C_list.Id()),1,MakeFunction1(E_Optimize_extract_signature_I_list,"Optimize_extract_signature!_list")),MakeString("odefine.cl:336")) C_Optimize__equalsig_ask = ToOperation(new(ClaireOperation).IsNamed(C_operation,MakeSymbol("=sig?",It))) - _ = Core.F_attach_method(C_Optimize__equalsig_ask.AddMethod(Signature(C_list.Id(),C_list.Id(),C_boolean.Id()),0,MakeFunction2(E_Optimize__equalsig_ask_list,"Optimize_=sig?_list")),MakeString("odefine.cl:336")) + _ = Core.F_attach_method(C_Optimize__equalsig_ask.AddMethod(Signature(C_list.Id(),C_list.Id(),C_boolean.Id()),0,MakeFunction2(E_Optimize__equalsig_ask_list,"Optimize_=sig?_list")),MakeString("odefine.cl:340")) _ = Core.F_attach_method(C_Compile_function_name.AddMethod(Signature(C_property.Id(), C_list.Id(), C_any.Id(), - C_string.Id()),0,MakeFunction3(E_Compile_function_name_property1,"Compile_function_name_property1")),MakeString("odefine.cl:355")) + C_string.Id()),0,MakeFunction3(E_Compile_function_name_property1,"Compile_function_name_property1")),MakeString("odefine.cl:359")) _ = Core.F_attach_method(C_Compile_compile_lambda.AddMethod(Signature(C_string.Id(), C_lambda.Id(), C_any.Id(), - C_any.Id()),1,MakeFunction3(E_Compile_compile_lambda_string,"Compile_compile_lambda_string")),MakeString("odefine.cl:372")) + C_any.Id()),1,MakeFunction3(E_Compile_compile_lambda_string,"Compile_compile_lambda_string")),MakeString("odefine.cl:376")) - _ = Core.F_attach_method(C_c_code.AddMethod(Signature(Language.C_Defarray.Id(),C_any.Id()),1,MakeFunction1(E_c_code_Defarray,"c_code_Defarray")),MakeString("odefine.cl:420")) + _ = Core.F_attach_method(C_c_code.AddMethod(Signature(Language.C_Defarray.Id(),C_any.Id()),1,MakeFunction1(E_c_code_Defarray,"c_code_Defarray")),MakeString("odefine.cl:424")) - _ = Core.F_attach_method(C_Compile_compute_if_write_inverse.AddMethod(Signature(C_relation.Id(),C_void.Id()),1,MakeFunction1(E_Compile_compute_if_write_inverse_relation,"Compile_compute_if_write_inverse_relation")),MakeString("odefine.cl:454")) + _ = Core.F_attach_method(C_Compile_compute_if_write_inverse.AddMethod(Signature(C_relation.Id(),C_void.Id()),1,MakeFunction1(E_Compile_compute_if_write_inverse_relation,"Compile_compute_if_write_inverse_relation")),MakeString("odefine.cl:458")) - _ = Core.F_attach_method(C_Compile_compute_set_write.AddMethod(Signature(C_relation.Id(),C_any.Id()),1,MakeFunction1(E_Compile_compute_set_write_relation,"Compile_compute_set_write_relation")),MakeString("odefine.cl:470")) + _ = Core.F_attach_method(C_Compile_compute_set_write.AddMethod(Signature(C_relation.Id(),C_any.Id()),1,MakeFunction1(E_Compile_compute_set_write_relation,"Compile_compute_set_write_relation")),MakeString("odefine.cl:474")) _ = Core.F_attach_method(C_Optimize_Produce_put.AddMethod(Signature(C_property.Id(), C_Variable.Id(), C_any.Id(), - C_any.Id()),1,MakeFunction3(E_Optimize_Produce_put_property,"Optimize_Produce_put_property")),MakeString("odefine.cl:482")) + C_any.Id()),1,MakeFunction3(E_Optimize_Produce_put_property,"Optimize_Produce_put_property")),MakeString("odefine.cl:486")) - _ = Core.F_attach_method(C_Optimize_Produce_erase.AddMethod(Signature(C_property.Id(),C_Variable.Id(),C_any.Id()),1,MakeFunction2(E_Optimize_Produce_erase_property,"Optimize_Produce_erase_property")),MakeString("odefine.cl:495")) + _ = Core.F_attach_method(C_Optimize_Produce_erase.AddMethod(Signature(C_property.Id(),C_Variable.Id(),C_any.Id()),1,MakeFunction2(E_Optimize_Produce_erase_property,"Optimize_Produce_erase_property")),MakeString("odefine.cl:499")) _ = Core.F_attach_method(C_Optimize_Produce_put.AddMethod(Signature(C_table.Id(), C_Variable.Id(), C_any.Id(), - C_any.Id()),0,MakeFunction3(E_Optimize_Produce_put_table,"Optimize_Produce_put_table")),MakeString("odefine.cl:504")) + C_any.Id()),0,MakeFunction3(E_Optimize_Produce_put_table,"Optimize_Produce_put_table")),MakeString("odefine.cl:508")) - _ = Core.F_attach_method(C_Optimize_Produce_get.AddMethod(Signature(C_relation.Id(),C_Variable.Id(),C_any.Id()),1,MakeFunction2(E_Optimize_Produce_get_relation,"Optimize_Produce_get_relation")),MakeString("odefine.cl:515")) + _ = Core.F_attach_method(C_Optimize_Produce_get.AddMethod(Signature(C_relation.Id(),C_Variable.Id(),C_any.Id()),1,MakeFunction2(E_Optimize_Produce_get_relation,"Optimize_Produce_get_relation")),MakeString("odefine.cl:519")) _ = Core.F_attach_method(C_Optimize_Produce_remove.AddMethod(Signature(C_property.Id(), C_Variable.Id(), C_any.Id(), - C_any.Id()),1,MakeFunction3(E_Optimize_Produce_remove_property,"Optimize_Produce_remove_property")),MakeString("odefine.cl:525")) + C_any.Id()),1,MakeFunction3(E_Optimize_Produce_remove_property,"Optimize_Produce_remove_property")),MakeString("odefine.cl:529")) _ = Core.F_attach_method(C_Optimize_Produce_remove.AddMethod(Signature(C_table.Id(), C_Variable.Id(), C_any.Id(), - C_any.Id()),0,MakeFunction3(E_Optimize_Produce_remove_table,"Optimize_Produce_remove_table")),MakeString("odefine.cl:531")) + C_any.Id()),0,MakeFunction3(E_Optimize_Produce_remove_table,"Optimize_Produce_remove_table")),MakeString("odefine.cl:535")) - _ = Core.F_attach_method(C_Optimize_Tighten.AddMethod(Signature(C_relation.Id(),C_void.Id()),0,MakeFunction1(E_Optimize_Tighten_relation,"Optimize_Tighten_relation")),MakeString("odefine.cl:545")) + _ = Core.F_attach_method(C_Optimize_Tighten.AddMethod(Signature(C_relation.Id(),C_void.Id()),0,MakeFunction1(E_Optimize_Tighten_relation,"Optimize_Tighten_relation")),MakeString("odefine.cl:549")) - _ = Core.F_attach_method(C_Compile_Tighten_I.AddMethod(Signature(C_relation.Id(),C_void.Id()),0,MakeFunction1(E_Compile_Tighten_I_relation,"Compile_Tighten!_relation")),MakeString("odefine.cl:547")) + _ = Core.F_attach_method(C_Compile_Tighten_I.AddMethod(Signature(C_relation.Id(),C_void.Id()),0,MakeFunction1(E_Compile_Tighten_I_relation,"Compile_Tighten!_relation")),MakeString("odefine.cl:551")) - _ = Core.F_attach_method(C_Compile_lexical_num.AddMethod(Signature(C_any.Id(),C_integer.Id(),C_void.Id()),1,MakeFunction2(E_Compile_lexical_num_any,"Compile_lexical_num_any")),MakeString("odefine.cl:562")) + _ = Core.F_attach_method(C_Compile_lexical_num.AddMethod(Signature(C_any.Id(),C_integer.Id(),C_void.Id()),1,MakeFunction2(E_Compile_lexical_num_any,"Compile_lexical_num_any")),MakeString("odefine.cl:566")) - _ = Core.F_attach_method(C_c_type.AddMethod(Signature(Language.C_Defrule.Id(),C_type.Id()),0,MakeFunction1(E_c_type_Defrule,"c_type_Defrule")),MakeString("odefine.cl:567")) + _ = Core.F_attach_method(C_c_type.AddMethod(Signature(Language.C_Defrule.Id(),C_type.Id()),0,MakeFunction1(E_c_type_Defrule,"c_type_Defrule")),MakeString("odefine.cl:571")) - _ = Core.F_attach_method(C_c_code.AddMethod(Signature(Language.C_Defrule.Id(),C_class.Id(),C_any.Id()),1,MakeFunction2(E_c_code_Defrule,"c_code_Defrule")),MakeString("odefine.cl:587")) + _ = Core.F_attach_method(C_c_code.AddMethod(Signature(Language.C_Defrule.Id(),C_class.Id(),C_any.Id()),1,MakeFunction2(E_c_code_Defrule,"c_code_Defrule")),MakeString("odefine.cl:591")) - _ = Core.F_attach_method(C_Optimize_compile_if_write.AddMethod(Signature(C_relation.Id(),C_void.Id()),1,MakeFunction1(E_Optimize_compile_if_write_relation,"Optimize_compile_if_write_relation")),MakeString("odefine.cl:616")) + _ = Core.F_attach_method(C_Optimize_compile_if_write.AddMethod(Signature(C_relation.Id(),C_void.Id()),1,MakeFunction1(E_Optimize_compile_if_write_relation,"Optimize_compile_if_write_relation")),MakeString("odefine.cl:620")) - _ = Core.F_attach_method(C_Optimize_demon_substitution.AddMethod(Signature(Language.C_Language_demon.Id(),C_list.Id(),C_any.Id()),0,MakeFunction2(E_Optimize_demon_substitution_demon,"Optimize_demon_substitution_demon")),MakeString("odefine.cl:621")) + _ = Core.F_attach_method(C_Optimize_demon_substitution.AddMethod(Signature(Language.C_Language_demon.Id(),C_list.Id(),C_any.Id()),0,MakeFunction2(E_Optimize_demon_substitution_demon,"Optimize_demon_substitution_demon")),MakeString("odefine.cl:625")) - _ = Core.F_attach_method(C_Optimize_demon_function.AddMethod(Signature(C_string.Id(),C_function.Id()),0,MakeFunction1(E_Optimize_demon_function_string,"Optimize_demon_function_string")),MakeString("odefine.cl:627")) + _ = Core.F_attach_method(C_Optimize_demon_function.AddMethod(Signature(C_string.Id(),C_function.Id()),0,MakeFunction1(E_Optimize_demon_function_string,"Optimize_demon_function_string")),MakeString("odefine.cl:631")) - _ = Core.F_attach_method(C_Optimize_compileEventMethod.AddMethod(Signature(C_property.Id(),C_any.Id()),1,MakeFunction1(E_Optimize_compileEventMethod_property,"Optimize_compileEventMethod_property")),MakeString("odefine.cl:633")) + _ = Core.F_attach_method(C_Optimize_compileEventMethod.AddMethod(Signature(C_property.Id(),C_any.Id()),1,MakeFunction1(E_Optimize_compileEventMethod_property,"Optimize_compileEventMethod_property")),MakeString("odefine.cl:637")) } diff --git a/src/Optimize/ocall.go b/src/Optimize/ocall.go index f89e9c4..0a2e47b 100644 --- a/src/Optimize/ocall.go +++ b/src/Optimize/ocall.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/compile/ocall.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:21 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:45 *****/ package Optimize import (_ "fmt" @@ -1059,10 +1059,10 @@ func F_Optimize_c_code_call_Call (self *Language.Call ,sx *ClaireClass ) EID { } } } else { - + Core.F_tformat_string(MakeString("---- note: ... unsafe access to unknown slot: ~S \n"),3,MakeConstantList(self.Id())) if (C_compiler.Optimize_ask == CTRUE) { F_Compile_notice_void() - + Core.F_tformat_string(MakeString("poorly optimized slot access: ~S\n"),3,MakeConstantList(self.Id())) } Result = F_Optimize_c_warn_property(s,l,_Ztype) } @@ -1614,7 +1614,27 @@ func F_Optimize_c_code_write_Call (self *Language.Call ) EID { } else { _Ztype = ToList(OBJ(try_21)) { var z *ClaireAny = F_Optimize_restriction_I_property(ss,_Ztype,CTRUE) - + { var arg_23 *ClaireList + var try_24 EID + { + var v_bag_arg *ClaireAny + try_24= EID{ToType(CEMPTY.Id()).EmptyList().Id(),0} + ToList(OBJ(try_24)).AddFast(self.Id()) + var try_25 EID + try_25 = Core.F_CALL(C_c_type,ARGS(x.ToEID())) + if ErrorIn(try_25) {try_24 = try_25 + } else { + v_bag_arg = ANY(try_25) + ToList(OBJ(try_24)).AddFast(v_bag_arg) + ToList(OBJ(try_24)).AddFast(yt.Id())} + } + if ErrorIn(try_24) {Result = try_24 + } else { + arg_23 = ToList(OBJ(try_24)) + Result = Core.F_tformat_string(MakeString("---- note: ~S is poorly typed (~S,~S) \n"),3,arg_23) + } + } + if !ErrorIn(Result) { if (C_method.Id() == z.Isa.Id()) { { var g0198 *ClaireMethod = ToMethod(z) Result = F_Optimize_c_code_method_method1(g0198,self.Args,_Ztype) @@ -1622,6 +1642,7 @@ func F_Optimize_c_code_write_Call (self *Language.Call ) EID { } else { Result = F_Optimize_c_warn_Call(self,_Ztype.Id()) } + } } } } @@ -2026,7 +2047,7 @@ func F_Optimize_c_code_add_Call (self *Language.Call ) EID { } else { if (C_compiler.Optimize_ask == CTRUE) { F_Compile_notice_void() - + Core.F_tformat_string(MakeString("poorly typed update: ~S\n"),3,MakeConstantList(self.Id())) } { var arg_18 *ClaireList var try_19 EID @@ -2830,7 +2851,7 @@ func F_Optimize_c_code_nth_Call (self *Language.Call ) EID { ((t.Included(ToType(C_array.Id())) == CTRUE) || (t.Included(ToType(C_table.Id())) == CTRUE))) { F_Compile_notice_void() - + Core.F_tformat_string(MakeString("poorly typed call: ~S\n"),3,MakeConstantList(self.Id())) } { var arg_37 *ClaireList var try_38 EID @@ -3076,7 +3097,7 @@ func F_Optimize_c_code_table_Call (self *Language.Call ) EID { (p.IfWrite == CNULL))) { if (C_compiler.Optimize_ask == CTRUE) { F_Compile_notice_void() - + Core.F_tformat_string(MakeString("poorly typed update: ~S\n"),3,MakeConstantList(self.Id())) } Result = F_Optimize_c_code_method_method1(ToMethod(Core.F__at_property1(C_put,C_table).Id()),self.Args,MakeConstantList(C_table.Id(),C_any.Id(),C_any.Id())) } else { @@ -3219,7 +3240,7 @@ func F_Optimize_c_code_array_Call (self *Language.Call ) EID { } else { if (C_compiler.Optimize_ask == CTRUE) { F_Compile_notice_void() - + Core.F_tformat_string(MakeString("poorly typed update: ~S\n"),3,MakeConstantList(self.Id())) } Result = F_Optimize_c_code_method_method1(ToMethod(Core.F__at_property1(ToProperty(IfThenElse((typeok == CTRUE), C_nth_put.Id(), @@ -3380,10 +3401,8 @@ func E_Optimize_Update_ask_relation1 (p EID,x EID,y EID) EID { // we do not use an Update form for add /* The go function for: Update?(p:relation,s:relation) [status=0] */ func F_Optimize_Update_ask_relation2 (p *ClaireRelation ,s *ClaireRelation ) *ClaireBoolean { - if ((p.IfWrite != CNULL) && - ((p.IfWrite.Isa.IsIn(C_list) != CTRUE) && - (s.Id() == C_add.Id()))) {return CTRUE - } else {return CFALSE}} + return MakeBoolean((p.IfWrite != CNULL) && (p.IfWrite.Isa.IsIn(C_list) != CTRUE) && (s.Id() == C_add.Id())) + } // The EID go function for: Update? @ list(relation, relation) (throw: false) func E_Optimize_Update_ask_relation2 (p EID,s EID) EID { @@ -3552,7 +3571,7 @@ func F_Optimize_c_code_method_method2 (self *ClaireMethod ,l *ClaireList ,_Ztype } else { if (C_compiler.Optimize_ask == CTRUE) { F_Compile_notice_void() - + Core.F_tformat_string(MakeString("poorly typed update: ~S\n"),3,MakeConstantList(self.Id())) } Result = F_Optimize_open_message_property(self.Selector,l) } diff --git a/src/Optimize/ocontrol.go b/src/Optimize/ocontrol.go index 5ef09bc..042773d 100644 --- a/src/Optimize/ocontrol.go +++ b/src/Optimize/ocontrol.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/compile/ocontrol.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:21 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:45 *****/ package Optimize import (_ "fmt" @@ -955,7 +955,7 @@ func F_c_code_Trace (self *Language.Trace ) EID { if ErrorIn(try_7) {v_or7_H = try_7 } else { arg_6 = ANY(try_7) - v_or7_H = EID{Core.F__inf_equal_integer(ToInteger(arg_6).Value,Reader.F_max_integer(2,ClEnv.Verbose)).Id(),0} + v_or7_H = EID{Core.F__inf_equal_integer(ToInteger(arg_6).Value,Reader.F_max_integer(3,ClEnv.Verbose)).Id(),0} } } if ErrorIn(v_or7_H){ @@ -1342,7 +1342,7 @@ func F_c_code_Printf (self *Language.Printf ) EID { } } if !ErrorIn(Result) { - if (F_boolean_I_any((s).Id()) == CTRUE) { + if (F_length_string(s) > 0) { { var arg_11 *Language.Call { var _CL_obj *Language.Call = Language.To_Call(new(Language.Call).Is(Language.C_Call)) _CL_obj.Selector = C_princ @@ -4005,7 +4005,7 @@ func F_iterate_array (x *ClaireList ,v *ClaireVariable ,e *ClaireAny ) EID { { var v *ClaireAny _ = v var try_2 EID - try_2 = Core.F_nth_array(_Za,_Zi) + try_2 = _Za.Nth(_Zi) if ErrorIn(try_2) {loop_1 = try_2 } else { v = ANY(try_2) diff --git a/src/Optimize/odefine.go b/src/Optimize/odefine.go index 79ded04..a39f8c4 100644 --- a/src/Optimize/odefine.go +++ b/src/Optimize/odefine.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/compile/odefine.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:21 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:45 *****/ package Optimize import (_ "fmt" @@ -848,22 +848,13 @@ func F_c_code_Definition (self *Language.Definition ,s *ClaireClass ) EID { var va_arg2 *ClaireAny va_arg1 = _CL_obj var try_8 EID - { var _CL_obj *Language.Do = Language.To_Do(new(Language.Do).Is(Language.C_Do)) - { - var va_arg1 *Language.Do - var va_arg2 *ClaireList - va_arg1 = _CL_obj - var try_9 EID - try_9 = F_Optimize_analyze_I_class(_Zc,_Zv.Id(),self.Args,ToType(CEMPTY.Id()).EmptyList()) - if ErrorIn(try_9) {try_8 = try_9 - } else { - va_arg2 = ToList(OBJ(try_9)) - va_arg1.Args = va_arg2 - try_8 = EID{va_arg2.Id(),0} - } - } - if !ErrorIn(try_8) { - try_8 = EID{_CL_obj.Id(),0} + { var arg_9 *ClaireAny + var try_10 EID + try_10 = F_Optimize_analyze_I_class(_Zc,_Zv.Id(),self.Args,ToType(CEMPTY.Id()).EmptyList()) + if ErrorIn(try_10) {try_8 = try_10 + } else { + arg_9 = ANY(try_10) + try_8 = F_Compile_Do_I_list(ToList(arg_9)).ToEID() } } if ErrorIn(try_8) {try_4 = try_8 @@ -1290,86 +1281,155 @@ func E_Optimize_analyze_I_class (c EID,self EID,_Zl EID,lp EID) EID { ToList(OBJ(lp)) )} // creation of a new named object +// CLAIRE4 : native variable need a specific /* The go function for: c_code(self:Defobj,s:class) [status=1] */ func F_c_code_Defobj (self *Language.Defobj ,s *ClaireClass ) EID { // eid body s = any var Result EID { var _Zc *ClaireClass = self.Arg { var o *ClaireAny = self.Ident.Value() - { var _Zv *ClaireAny - if ((o != CNULL) && - (o.Isa.IsIn(Core.C_global_variable) != CTRUE)) { - _Zv = o - } else { - { var arg_1 int - C_OPT.MaxVars = (C_OPT.MaxVars+1) - arg_1 = 0 - _Zv = F_Compile_Variable_I_symbol(ToSymbol(C_Compile__starname_star.Value),arg_1,_Zc.Id()).Id() + { var _Zx *ClaireAny = CNULL + var g0301I *ClaireBoolean + if (o.Isa.IsIn(Core.C_global_variable) == CTRUE) { + { var g0299 *Core.GlobalVariable = Core.ToGlobalVariable(o) + g0301I = F_Compile_nativeVar_ask_global_variable(g0299) } + } else { + g0301I = CFALSE } - { var _Zy1 *Language.Call - { var _CL_obj *Language.Call = Language.To_Call(new(Language.Call).Is(Language.C_Call)) - _CL_obj.Selector = C_Compile_object_I - _CL_obj.Args = MakeConstantList(self.Ident.Id(),_Zc.Id()) - _Zy1 = _CL_obj - } - { var _Zy2 *ClaireAny - var try_2 EID - try_2 = F_Optimize_analyze_I_class(_Zc,_Zv,self.Args,MakeConstantList(C_name.Id())) - if ErrorIn(try_2) {Result = try_2 - } else { - _Zy2 = ANY(try_2) - { var _Zx *ClaireAny - if (_Zv.Isa.IsIn(C_Variable) != CTRUE) { - { var _CL_obj *Language.Do = Language.To_Do(new(Language.Do).Is(Language.C_Do)) - _CL_obj.Args = F_cons_any(_Zy1.Id(),ToList(_Zy2)) - _Zx = _CL_obj.Id() - } - } else { - { var _CL_obj *Language.Let = Language.To_Let(new(Language.Let).Is(Language.C_Let)) - _CL_obj.ClaireVar = To_Variable(_Zv) - _CL_obj.Value = _Zy1.Id() - { - var va_arg1 *Language.Let - var va_arg2 *ClaireAny - va_arg1 = _CL_obj - { var _CL_obj *Language.Do = Language.To_Do(new(Language.Do).Is(Language.C_Do)) - _CL_obj.Args = ToList(_Zy2) - va_arg2 = _CL_obj.Id() - } - va_arg1.Arg = va_arg2 + if (g0301I == CTRUE) { + { var _Zval *ClaireAny = CNULL + { + var c *ClaireAny + _ = c + var c_support *ClaireList + c_support = self.Args + c_len := c_support.Length() + for i_it := 0; i_it < c_len; i_it++ { + c = c_support.At(i_it) + var g0302I *ClaireBoolean + if (c.Isa.IsIn(Language.C_Call) == CTRUE) { + { var g0300 *Language.Call = Language.To_Call(c) + g0302I = MakeBoolean((g0300.Selector.Id() == C__equal.Id()) && (g0300.Args.At(1-1) == C_value.Id())) } - _Zx = _CL_obj.Id() + } else { + g0302I = CFALSE + } + if (g0302I == CTRUE) { + _Zval = ToList(OBJ(Core.F_CALL(C_args,ARGS(c.ToEID())))).At(2-1) } } - - if (_Zc.Open <= 0) { - Result = ToException(Core.C_general_error.Make(MakeString("[105] cannot instantiate ~S").Id(),MakeConstantList(_Zc.Id()).Id())).Close() + } + var try_1 EID + { var _CL_obj *Language.Gassign = Language.To_Gassign(new(Language.Gassign).Is(Language.C_Gassign)) + _CL_obj.ClaireVar = Core.ToGlobalVariable(o) + { + var va_arg1 *Language.Gassign + var va_arg2 *ClaireAny + va_arg1 = _CL_obj + var try_2 EID + { var arg_3 *ClaireClass + var try_4 EID + { var arg_5 *ClaireType + var try_6 EID + try_6 = Core.F_CALL(C_c_type,ARGS(o.ToEID())) + if ErrorIn(try_6) {try_4 = try_6 + } else { + arg_5 = ToType(OBJ(try_6)) + try_4 = EID{arg_5.Class_I().Id(),0} + } + } + if ErrorIn(try_4) {try_2 = try_4 + } else { + arg_3 = ToClass(OBJ(try_4)) + try_2 = Core.F_CALL(C_c_code,ARGS(_Zval.ToEID(),EID{arg_3.Id(),0})) + } + } + if ErrorIn(try_2) {try_1 = try_2 } else { - Result = EID{CFALSE.Id(),0} + va_arg2 = ANY(try_2) + va_arg1.Arg = va_arg2 + try_1 = va_arg2.ToEID() + } + } + if !ErrorIn(try_1) { + try_1 = EID{_CL_obj.Id(),0} + } + } + if ErrorIn(try_1) {Result = try_1 + } else { + _Zx = ANY(try_1) + Result = _Zx.ToEID() + } + } + } else { + { var _Zv *ClaireAny + if ((o != CNULL) && + (o.Isa.IsIn(Core.C_global_variable) != CTRUE)) { + _Zv = o + } else { + { var arg_7 int + C_OPT.MaxVars = (C_OPT.MaxVars+1) + arg_7 = 0 + _Zv = F_Compile_Variable_I_symbol(ToSymbol(C_Compile__starname_star.Value),arg_7,_Zc.Id()).Id() + } + } + { var _Zy1 *Language.Call + { var _CL_obj *Language.Call = Language.To_Call(new(Language.Call).Is(Language.C_Call)) + _CL_obj.Selector = C_Compile_object_I + _CL_obj.Args = MakeConstantList(self.Ident.Id(),_Zc.Id()) + _Zy1 = _CL_obj } - if !ErrorIn(Result) { - if (o != CNULL) { - if (ToBoolean(C_OPT.Objects.Contain_ask(o).Id()) != CTRUE) { - C_OPT.Objects = C_OPT.Objects.AddFast(o) - Core.F_CALL(C_Optimize_c_register,ARGS(o.ToEID())) + { var _Zy2 *ClaireAny + var try_8 EID + try_8 = F_Optimize_analyze_I_class(_Zc,_Zv,self.Args,MakeConstantList(C_name.Id())) + if ErrorIn(try_8) {Result = try_8 + } else { + _Zy2 = ANY(try_8) + if (_Zv.Isa.IsIn(C_Variable) != CTRUE) { + { var _CL_obj *Language.Do = Language.To_Do(new(Language.Do).Is(Language.C_Do)) + _CL_obj.Args = F_cons_any(_Zy1.Id(),ToList(_Zy2)) + _Zx = _CL_obj.Id() + } + } else { + { var _CL_obj *Language.Let = Language.To_Let(new(Language.Let).Is(Language.C_Let)) + _CL_obj.ClaireVar = To_Variable(_Zv) + _CL_obj.Value = _Zy1.Id() + _CL_obj.Arg = F_Compile_Do_I_list(ToList(_Zy2)) + _Zx = _CL_obj.Id() + } } + var try_9 EID + try_9 = Core.F_CALL(C_c_code,ARGS(_Zx.ToEID(),EID{s.Id(),0})) + if ErrorIn(try_9) {Result = try_9 } else { - F_Compile_warn_void() - Core.F_tformat_string(MakeString("~S is unknown [265]\n"),2,MakeConstantList(self.Ident.Id())) + _Zx = ANY(try_9) + Result = _Zx.ToEID() + } + } } - var try_3 EID - try_3 = Core.F_CALL(C_c_code,ARGS(_Zx.ToEID(),EID{s.Id(),0})) - if ErrorIn(try_3) {Result = try_3 - } else { - _Zx = ANY(try_3) - Result = _Zx.ToEID() - Result = _Zx.ToEID() - }} } - } } } + if !ErrorIn(Result) { + + if (_Zc.Open <= 0) { + Result = ToException(Core.C_general_error.Make(MakeString("[105] cannot instantiate ~S").Id(),MakeConstantList(_Zc.Id()).Id())).Close() + } else { + Result = EID{CFALSE.Id(),0} + } + if !ErrorIn(Result) { + if (o != CNULL) { + if (ToBoolean(C_OPT.Objects.Contain_ask(o).Id()) != CTRUE) { + C_OPT.Objects = C_OPT.Objects.AddFast(o) + Core.F_CALL(C_Optimize_c_register,ARGS(o.ToEID())) + } + } else { + F_Compile_warn_void() + Core.F_tformat_string(MakeString("~S is unknown [265]\n"),2,MakeConstantList(self.Ident.Id())) + } + Result = _Zx.ToEID() + }} } } } @@ -1423,18 +1483,18 @@ func F_c_code_Defclass (self *Language.Defclass ,s *ClaireClass ) EID { var try_9 EID { var v *ClaireAny = CNULL if (x.Isa.IsIn(Language.C_Call) == CTRUE) { - { var g0300 *Language.Call = Language.To_Call(x) - v = g0300.Args.At(2-1) - g0300 = Language.To_Call(g0300.Args.At(1-1)) - x = g0300.Id() + { var g0304 *Language.Call = Language.To_Call(x) + v = g0304.Args.At(2-1) + g0304 = Language.To_Call(g0304.Args.At(1-1)) + x = g0304.Id() try_9 = x.ToEID() } } else if (x.Isa.IsIn(C_Variable) == CTRUE) { - { var g0301 *ClaireVariable = To_Variable(x) + { var g0305 *ClaireVariable = To_Variable(x) var try_10 EID { var arg_11 *ClaireAny var try_12 EID - try_12 = Language.F_extract_type_any(g0301.Range.Id()) + try_12 = Language.F_extract_type_any(g0305.Range.Id()) if ErrorIn(try_12) {try_10 = try_12 } else { arg_11 = ANY(try_12) @@ -1643,8 +1703,8 @@ func F_c_code_Defmethod (self *Language.Defmethod ) EID { { var m *ClaireMethod var try_6 EID if (C_method.Id() == getm.Isa.Id()) { - { var g0302 *ClaireMethod = ToMethod(getm.Id()) - try_6 = EID{g0302.Id(),0} + { var g0306 *ClaireMethod = ToMethod(getm.Id()) + try_6 = EID{g0306.Id(),0} } } else { try_6 = ToException(Core.C_general_error.Make(MakeString("[internal] the method ~S @ ~S is not known").Id(),MakeConstantList(px.Id(),ls.At(2-1)).Id())).Close() @@ -1659,7 +1719,7 @@ func F_c_code_Defmethod (self *Language.Defmethod ) EID { (px.Id() == Language.C_iterate.Id()))) { Result = EID{CNIL.Id(),0} } else { - var g0304I *ClaireBoolean + var g0308I *ClaireBoolean var try_7 EID { var v_and12 *ClaireBoolean @@ -1680,8 +1740,8 @@ func F_c_code_Defmethod (self *Language.Defmethod ) EID { } if ErrorIn(try_7) {Result = try_7 } else { - g0304I = ToBoolean(OBJ(try_7)) - if (g0304I == CTRUE) { + g0308I = ToBoolean(OBJ(try_7)) + if (g0308I == CTRUE) { Result = F_Optimize_sort_code_Defmethod(self,lv) } else { @@ -1700,7 +1760,7 @@ func F_c_code_Defmethod (self *Language.Defmethod ) EID { la = ToLambda(OBJ(try_10)) { var news int var try_11 EID - var g0305I *ClaireBoolean + var g0309I *ClaireBoolean var try_12 EID if (C_OPT.Recompute == CTRUE) { try_12 = F_Compile_g_throw_any(lbody.At(2-1)) @@ -1709,8 +1769,8 @@ func F_c_code_Defmethod (self *Language.Defmethod ) EID { } if ErrorIn(try_12) {try_11 = try_12 } else { - g0305I = ToBoolean(OBJ(try_12)) - if (g0305I == CTRUE) { + g0309I = ToBoolean(OBJ(try_12)) + if (g0309I == CTRUE) { try_11 = EID{C__INT,IVAL(1)} } else { try_11 = EID{C__INT,IVAL(0)} @@ -1860,17 +1920,17 @@ func F_Optimize_sort_pattern_ask_list (lv *ClaireList ,_Zbody *ClaireAny ) EID { } else { var try_1 EID if (_Zbody.Isa.IsIn(Language.C_Call) == CTRUE) { - { var g0306 *Language.Call = Language.To_Call(_Zbody) + { var g0310 *Language.Call = Language.To_Call(_Zbody) { var v_and6 *ClaireBoolean - v_and6 = Equal(g0306.Selector.Id(),Core.C_sort.Id()) + v_and6 = Equal(g0310.Selector.Id(),Core.C_sort.Id()) if (v_and6 == CFALSE) {try_1 = EID{CFALSE.Id(),0} } else { - { var a1 *ClaireAny = g0306.Args.At(1-1) + { var a1 *ClaireAny = g0310.Args.At(1-1) if (a1.Isa.IsIn(Language.C_Call) == CTRUE) { - { var g0307 *Language.Call = Language.To_Call(a1) - v_and6 = MakeBoolean((g0307.Selector.Id() == Core.C__at.Id()) && (g0307.Args.At(1-1).Isa.IsIn(C_property) == CTRUE)) + { var g0311 *Language.Call = Language.To_Call(a1) + v_and6 = MakeBoolean((g0311.Selector.Id() == Core.C__at.Id()) && (g0311.Args.At(1-1).Isa.IsIn(C_property) == CTRUE)) } } else { v_and6 = CFALSE @@ -1881,7 +1941,7 @@ func F_Optimize_sort_pattern_ask_list (lv *ClaireList ,_Zbody *ClaireAny ) EID { var try_2 EID { var arg_3 *ClaireAny var try_4 EID - try_4 = Language.F_lexical_build_any(g0306.Args.At(2-1),lv,0) + try_4 = Language.F_lexical_build_any(g0310.Args.At(2-1),lv,0) if ErrorIn(try_4) {try_2 = try_4 } else { arg_3 = ANY(try_4) @@ -2643,9 +2703,8 @@ func E_Optimize_extract_signature_I_list (l EID) EID { // check signature equality /* The go function for: =sig?(x:list,y:list) [status=0] */ func F_Optimize__equalsig_ask_list (x *ClaireList ,y *ClaireList ) *ClaireBoolean { - if ((Core.F_tmatch_ask_list(x,y) == CTRUE) && - (Core.F_tmatch_ask_list(y,x) == CTRUE)) {return CTRUE - } else {return CFALSE}} + return MakeBoolean((Core.F_tmatch_ask_list(x,y) == CTRUE) && (Core.F_tmatch_ask_list(y,x) == CTRUE)) + } // The EID go function for: =sig? @ list (throw: false) func E_Optimize__equalsig_ask_list (x EID,y EID) EID { @@ -2719,10 +2778,10 @@ func F_Compile_compile_lambda_string (self *ClaireString ,l *ClaireLambda ,m *Cl { var x int = C_compiler.Safety { var y *ClaireLambda = l _ = y - + Core.F_tformat_string(MakeString("---- Compiling ~A,\n"),3,MakeConstantList((self).Id())) if (C_method.Id() == m.Isa.Id()) { - { var g0309 *ClaireMethod = ToMethod(m) - C_OPT.InMethod = g0309.Id() + { var g0313 *ClaireMethod = ToMethod(m) + C_OPT.InMethod = g0313.Id() } } if (C_OPT.LoopIndex > 0) { @@ -2769,8 +2828,8 @@ func F_c_code_Defarray (self *Language.Defarray ) EID { { var _Zv *ClaireTable var try_4 EID if (C_table.Id() == _Za.Isa.Id()) { - { var g0311 *ClaireTable = ToTable(_Za) - try_4 = EID{g0311.Id(),0} + { var g0315 *ClaireTable = ToTable(_Za) + try_4 = EID{g0315.Id(),0} } } else { try_4 = ToException(Core.C_general_error.Make(MakeString("[internal] the table ~S is unknown").Id(),MakeConstantList(a.At(1-1)).Id())).Close() @@ -2793,7 +2852,7 @@ func F_c_code_Defarray (self *Language.Defarray ) EID { if ErrorIn(try_7) {try_5 = try_7 } else { b = ANY(try_7) - var g0317I *ClaireBoolean + var g0321I *ClaireBoolean { var arg_8 *ClaireAny { var va *ClaireAny @@ -2810,9 +2869,9 @@ func F_c_code_Defarray (self *Language.Defarray ) EID { } } } - g0317I = F_boolean_I_any(arg_8) + g0321I = F_boolean_I_any(arg_8) } - if (g0317I == CTRUE) { + if (g0321I == CTRUE) { try_5 = Language.F_lambda_I_list(l,b) } else { try_5 = self.Body.ToEID() @@ -2964,7 +3023,7 @@ func F_c_code_Defarray (self *Language.Defarray ) EID { Result = EID{_Zl2.Id(),0} { var arg_17 *ClaireObject if (e.Isa.IsIn(C_lambda) == CTRUE) { - { var g0315 *ClaireLambda = ToLambda(e) + { var g0319 *ClaireLambda = ToLambda(e) { var _CL_obj *Language.For = Language.To_For(new(Language.For).Is(Language.C_For)) _CL_obj.ClaireVar = To_Variable(a.At(2-1)) _CL_obj.SetArg = s.Id() @@ -2974,7 +3033,7 @@ func F_c_code_Defarray (self *Language.Defarray ) EID { va_arg1 = Language.To_Iteration(_CL_obj.Id()) { var _CL_obj *Language.Call = Language.To_Call(new(Language.Call).Is(Language.C_Call)) _CL_obj.Selector = C_nth_equal - _CL_obj.Args = MakeConstantList(_Zv.Id(),a.At(2-1),g0315.Body) + _CL_obj.Args = MakeConstantList(_Zv.Id(),a.At(2-1),g0319.Body) va_arg2 = _CL_obj.Id() } va_arg1.Arg = va_arg2 @@ -3039,7 +3098,7 @@ func F_c_code_Defarray (self *Language.Defarray ) EID { } { var arg_21 *ClaireObject if (e.Isa.IsIn(C_lambda) == CTRUE) { - { var g0316 *ClaireLambda = ToLambda(e) + { var g0320 *ClaireLambda = ToLambda(e) { var _CL_obj *Language.For = Language.To_For(new(Language.For).Is(Language.C_For)) _CL_obj.ClaireVar = To_Variable(a.At(2-1)) _CL_obj.SetArg = s1.Id() @@ -3059,7 +3118,7 @@ func F_c_code_Defarray (self *Language.Defarray ) EID { _CL_obj.Args = MakeConstantList(_Zv.Id(), a.At(2-1), a.At(3-1), - g0316.Body) + g0320.Body) va_arg2 = _CL_obj.Id() } va_arg1.Arg = va_arg2 @@ -3302,16 +3361,7 @@ func F_Compile_compute_if_write_inverse_relation (R *ClaireRelation ) EID { } } if !ErrorIn(try_8) { - { - var va_arg1 *Language.If - var va_arg2 *ClaireAny - va_arg1 = _CL_obj - { var _CL_obj *Language.Do = Language.To_Do(new(Language.Do).Is(Language.C_Do)) - _CL_obj.Args = l1 - va_arg2 = _CL_obj.Id() - } - va_arg1.Arg = va_arg2 - } + _CL_obj.Arg = F_Compile_Do_I_list(l1) try_8 = EID{_CL_obj.Id(),0} } } @@ -3447,16 +3497,7 @@ func F_Compile_compute_if_write_inverse_relation (R *ClaireRelation ) EID { } va_arg1.Test = va_arg2 } - { - var va_arg1 *Language.If - var va_arg2 *ClaireAny - va_arg1 = _CL_obj - { var _CL_obj *Language.Do = Language.To_Do(new(Language.Do).Is(Language.C_Do)) - _CL_obj.Args = l1 - va_arg2 = _CL_obj.Id() - } - va_arg1.Arg = va_arg2 - } + _CL_obj.Arg = F_Compile_Do_I_list(l1) va_arg2 = _CL_obj.Id() } va_arg1.Arg = va_arg2 @@ -3621,13 +3662,7 @@ func F_Compile_compute_set_write_relation (R *ClaireRelation ) EID { { var dn *ClaireString = F_append_string(R.Name.String_I(),MakeString("_set_write")) { var arg_13 *ClaireLambda var try_14 EID - { var arg_15 *Language.Do - { var _CL_obj *Language.Do = Language.To_Do(new(Language.Do).Is(Language.C_Do)) - _CL_obj.Args = l1 - arg_15 = _CL_obj - } - try_14 = Language.F_lambda_I_list(MakeConstantList(x.Id(),y.Id()),arg_15.Id()) - } + try_14 = Language.F_lambda_I_list(MakeConstantList(x.Id(),y.Id()),F_Compile_Do_I_list(l1)) if ErrorIn(try_14) {Result = try_14 } else { arg_13 = ToLambda(OBJ(try_14)) @@ -3894,22 +3929,22 @@ func F_Optimize_Produce_get_relation (r *ClaireRelation ,x *ClaireVariable ) EID // eid body s = any var Result EID if (C_table.Id() == r.Isa.Id()) { - { var g0318 *ClaireTable = ToTable(r.Id()) + { var g0322 *ClaireTable = ToTable(r.Id()) { var _CL_obj *Language.Call = Language.To_Call(new(Language.Call).Is(Language.C_Call)) _CL_obj.Selector = C_nth - _CL_obj.Args = MakeConstantList(g0318.Id(),x.Id()) + _CL_obj.Args = MakeConstantList(g0322.Id(),x.Id()) Result = EID{_CL_obj.Id(),0} } } } else if (r.Isa.IsIn(C_property) == CTRUE) { - { var g0319 *ClaireProperty = ToProperty(r.Id()) + { var g0323 *ClaireProperty = ToProperty(r.Id()) { var l *ClaireList = ToType(C_any.Id()).EmptyList() { var xs *ClaireRestriction _ = xs var xs_iter *ClaireAny Result= EID{CFALSE.Id(),0} - for _,xs_iter = range(g0319.Restrictions.ValuesO()){ + for _,xs_iter = range(g0323.Restrictions.ValuesO()){ xs = ToRestriction(xs_iter) var loop_1 EID _ = loop_1 @@ -3922,7 +3957,7 @@ func F_Optimize_Produce_get_relation (r *ClaireRelation ,x *ClaireVariable ) EID arg_3= ToType(CEMPTY.Id()).EmptyList() arg_3.AddFast(Core.F_domain_I_restriction(xs).Id()) { var _CL_obj *Language.Call = Language.To_Call(new(Language.Call).Is(Language.C_Call)) - _CL_obj.Selector = g0319 + _CL_obj.Selector = g0323 { var va_arg1 *Language.Call var va_arg2 *ClaireList @@ -4105,19 +4140,19 @@ func E_Optimize_Produce_remove_table (r EID,x EID,y EID) EID { func F_Optimize_Tighten_relation (r *ClaireRelation ) { // procedure body with s = void if (r.Isa.IsIn(C_property) == CTRUE) { - { var g0320 *ClaireProperty = ToProperty(r.Id()) + { var g0324 *ClaireProperty = ToProperty(r.Id()) { var ad *ClaireType = ToType(CEMPTY.Id()) { var ar *ClaireType = ToType(CEMPTY.Id()) { var s *ClaireRestriction _ = s var s_iter *ClaireAny - for _,s_iter = range(g0320.Restrictions.ValuesO()){ + for _,s_iter = range(g0324.Restrictions.ValuesO()){ s = ToRestriction(s_iter) if (C_slot.Id() == s.Isa.Id()) { ad = Core.F_U_type(ad,ToType(Core.F_domain_I_restriction(s).Id())) { var arg_1 *ClaireType - if (g0320.Multivalued_ask == CTRUE) { + if (g0324.Multivalued_ask == CTRUE) { arg_1 = Core.F_member_type(s.Range) } else { arg_1 = s.Range @@ -4127,14 +4162,14 @@ func F_Optimize_Tighten_relation (r *ClaireRelation ) { } } } - g0320.Open = 1 + g0324.Open = 1 if (Equal(ad.Id(),CEMPTY.Id()) != CTRUE) { - g0320.Domain = ToType(ad.Class_I().Id()) + g0324.Domain = ToType(ad.Class_I().Id()) { var va_arg1 *ClaireRelation var va_arg2 *ClaireType - va_arg1 = ToRelation(g0320.Id()) - if (g0320.Multivalued_ask == CTRUE) { + va_arg1 = ToRelation(g0324.Id()) + if (g0324.Multivalued_ask == CTRUE) { va_arg2 = Core.F_param_I_class(C_set,ToType(ar.Class_I().Id())) } else { va_arg2 = ar @@ -4173,14 +4208,14 @@ func F_Compile_lexical_num_any (self *ClaireAny ,n int) EID { // eid body s = void var Result EID if (self.Isa.IsIn(Language.C_Call) == CTRUE) { - { var g0321 *Language.Call = Language.To_Call(self) - Result = F_Compile_lexical_num_any(g0321.Args.Id(),n) + { var g0325 *Language.Call = Language.To_Call(self) + Result = F_Compile_lexical_num_any(g0325.Args.Id(),n) } } else if (self.Isa.IsIn(C_Instruction) == CTRUE) { - { var g0322 *ClaireInstruction = To_Instruction(self) - { var _Ztype *ClaireClass = g0322.Isa + { var g0326 *ClaireInstruction = To_Instruction(self) + { var _Ztype *ClaireClass = g0326.Isa if (Language.C_Instruction_with_var.Descendants.Contain_ask(_Ztype.Id()) == CTRUE) { - Result = Core.F_put_property2(C_mClaire_index,ToObject(OBJ(Core.F_CALL(Language.C_var,ARGS(EID{g0322.Id(),0})))),MakeInteger(n).Id()) + Result = Core.F_put_property2(C_mClaire_index,ToObject(OBJ(Core.F_CALL(Language.C_var,ARGS(EID{g0326.Id(),0})))),MakeInteger(n).Id()) if !ErrorIn(Result) { n = (n+1) if (n > ToInteger(Language.C__starvariable_index_star.Value).Value) { @@ -4205,7 +4240,7 @@ func F_Compile_lexical_num_any (self *ClaireAny ,n int) EID { s = ToSlot(s_iter) var loop_2 EID _ = loop_2 - loop_2 = F_Compile_lexical_num_any(Core.F_get_slot(s,ToObject(g0322.Id())),n) + loop_2 = F_Compile_lexical_num_any(Core.F_get_slot(s,ToObject(g0326.Id())),n) if ErrorIn(loop_2) {Result = loop_2 break } else { @@ -4216,14 +4251,14 @@ func F_Compile_lexical_num_any (self *ClaireAny ,n int) EID { } } } else if (self.Isa.IsIn(C_bag) == CTRUE) { - { var g0323 *ClaireBag = ToBag(self) + { var g0327 *ClaireBag = ToBag(self) { var x *ClaireAny _ = x Result= EID{CFALSE.Id(),0} var x_support *ClaireList var try_3 EID - try_3 = Core.F_enumerate_any(g0323.Id()) + try_3 = Core.F_enumerate_any(g0327.Id()) if ErrorIn(try_3) {Result = try_3 } else { x_support = ToList(OBJ(try_3)) @@ -4374,13 +4409,7 @@ func F_c_code_Defrule (self *Language.Defrule ,s *ClaireClass ) EID { } } if !ErrorIn(Result) { - { var arg_9 *Language.Do - { var _CL_obj *Language.Do = Language.To_Do(new(Language.Do).Is(Language.C_Do)) - _CL_obj.Args = l - arg_9 = _CL_obj - } - Result = Core.F_CALL(C_c_code,ARGS(EID{arg_9.Id(),0},EID{s.Id(),0})) - } + Result = Core.F_CALL(C_c_code,ARGS(F_Compile_Do_I_list(l).ToEID(),EID{s.Id(),0})) }} } } @@ -4535,12 +4564,9 @@ func F_Optimize_compile_if_write_relation (R *ClaireRelation ) EID { var va_arg2 *ClaireAny va_arg1 = R var try_12 EID - { var arg_13 *Language.ComplexInstruction + { var arg_13 *ClaireAny if (Language.F_eventMethod_ask_relation2(R) == CTRUE) { - { var _CL_obj *Language.Do = Language.To_Do(new(Language.Do).Is(Language.C_Do)) - _CL_obj.Args = l2 - arg_13 = Language.To_ComplexInstruction(_CL_obj.Id()) - } + arg_13 = F_Compile_Do_I_list(l2) } else if (R.Multivalued_ask == CTRUE) { { var _CL_obj *Language.If = Language.To_If(new(Language.If).Is(Language.C_If)) { @@ -4578,7 +4604,7 @@ func F_Optimize_compile_if_write_relation (R *ClaireRelation ) EID { } va_arg1.Arg = va_arg2 } - arg_13 = Language.To_ComplexInstruction(_CL_obj.Id()) + arg_13 = _CL_obj.Id() } } else { { var _CL_obj *Language.Let = Language.To_Let(new(Language.Let).Is(Language.C_Let)) @@ -4614,10 +4640,10 @@ func F_Optimize_compile_if_write_relation (R *ClaireRelation ) EID { } va_arg1.Arg = va_arg2 } - arg_13 = Language.To_ComplexInstruction(_CL_obj.Id()) + arg_13 = _CL_obj.Id() } } - try_12 = Language.F_lambda_I_list(MakeConstantList(lvar.At(1-1),lvar.At(2-1)),arg_13.Id()) + try_12 = Language.F_lambda_I_list(MakeConstantList(lvar.At(1-1),lvar.At(2-1)),arg_13) } if ErrorIn(try_12) {Result = try_12 } else { diff --git a/src/Optimize/osystem.go b/src/Optimize/osystem.go index 5b3beda..46bfb5d 100644 --- a/src/Optimize/osystem.go +++ b/src/Optimize/osystem.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/compile/osystem.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:21 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:45 *****/ package Optimize import (_ "fmt" @@ -1636,9 +1636,8 @@ func F_Optimize_stable_ask_relation (self *ClaireRelation ) *ClaireBoolean { self.Open = 1 } } - if ((self.Open <= 1) || - (self.Open == 4)) {return CTRUE - } else {return CFALSE}} + return MakeBoolean((self.Open <= 1) || (self.Open == 4)) + } // The EID go function for: stable? @ relation (throw: false) func E_Optimize_stable_ask_relation (self EID) EID { diff --git a/src/Optimize/otool.go b/src/Optimize/otool.go index 42fb3a0..1a10fad 100644 --- a/src/Optimize/otool.go +++ b/src/Optimize/otool.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/compile/otool.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:21 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:45 *****/ package Optimize import (_ "fmt" @@ -61,8 +61,8 @@ func E_self_print_C_cast (self EID) EID { /* The go function for: Compile/c_gc?(self:Compile/C_cast) [status=0] */ func (self *Compile_CCast ) CGc_ask () *ClaireBoolean { - if (To_Compile_CCast(self.Arg).CGc_ask() == CTRUE) {return CTRUE - } else {return CFALSE}} + return To_Compile_CCast(self.Arg).CGc_ask() + } // The EID go function for: Compile/c_gc? @ Compile/C_cast (throw: false) func E_Compile_c_gc_ask_C_cast (self EID) EID { @@ -472,7 +472,7 @@ func F_Optimize_c_warn_Call (self *Language.Call ,_Ztype *ClaireAny ) EID { Result = Core.F_tformat_string(MakeString("wrongly typed message ~S (~S) [256]\n"),1,MakeConstantList(self.Id(),_Ztype)) } else if (C_compiler.Optimize_ask == CTRUE) { F_Compile_notice_void() - Result = EID{CFALSE.Id(),0} + Result = Core.F_tformat_string(MakeString("poorly typed message ~S [~S]\n"),3,MakeConstantList(self.Id(),_Ztype)) } else { Result = EID{CFALSE.Id(),0} } @@ -499,7 +499,7 @@ func F_Optimize_c_warn_Super (self *Language.Super ,_Ztype *ClaireAny ) EID { Result = Core.F_tformat_string(MakeString("the property ~S is undefined [255]\n"),1,MakeConstantList(s.Id())) } else if ((C_OPT.Ignore.Contain_ask(s.Id()) != CTRUE) && (s.Open <= 1)) { - Result = EID{CFALSE.Id(),0} + Result = Core.F_tformat_string(MakeString("---- note: wrongly typed message ~S [~S]\n"),3,MakeConstantList(self.Id(),_Ztype)) } else { Result = EID{CFALSE.Id(),0} } @@ -901,7 +901,7 @@ func F_Optimize_enumerate_code_any (self *ClaireAny ,_Zt *ClaireType ) EID { } else { if (C_compiler.Optimize_ask == CTRUE) { F_Compile_notice_void() - + Core.F_tformat_string(MakeString("explicit enmeration of ~S\n"),3,MakeConstantList(self)) } Result = F_Optimize_c_code_method_method1(ToMethod(Core.F__at_property1(Core.C_Core_enumerate,C_any).Id()),MakeConstantList(self),MakeConstantList(_Zt.Id())) } @@ -1049,10 +1049,8 @@ func E_Optimize_c_srange_method (m EID) EID { // we require the range to be safe, no backtrack & local global var /* The go function for: Compile/nativeVar?(x:global_variable) [status=0] */ func F_Compile_nativeVar_ask_global_variable (x *Core.GlobalVariable ) *ClaireBoolean { - if ((C_compiler.Optimize_ask == CTRUE) && - ((x.Store_ask.Id() == CFALSE.Id()) && - (x.Name.Module_I().Id() == x.Name.Defined().Id()))) {return CTRUE - } else {return CFALSE}} + return MakeBoolean((C_compiler.Optimize_ask == CTRUE) && (x.Store_ask.Id() == CFALSE.Id()) && (x.Name.Module_I().Id() == x.Name.Defined().Id())) + } // The EID go function for: Compile/nativeVar? @ global_variable (throw: false) func E_Compile_nativeVar_ask_global_variable (x EID) EID { @@ -2822,4 +2820,23 @@ func F_Optimize_c_boolean_any (x *ClaireAny ) EID { // The EID go function for: c_boolean @ any (throw: true) func E_Optimize_c_boolean_any (x EID) EID { return F_Optimize_c_boolean_any(ANY(x) )} + +// this should have been created long ago +/* The go function for: Compile/Do!(l:list) [status=0] */ +func F_Compile_Do_I_list (l *ClaireList ) *ClaireAny { + // procedure body with s = any + var Result *ClaireAny + if (l.Length() == 1) { + Result = l.At(1-1) + } else { + { var _CL_obj *Language.Do = Language.To_Do(new(Language.Do).Is(Language.C_Do)) + _CL_obj.Args = l + Result = _CL_obj.Id() + } + } + return Result} + +// The EID go function for: Compile/Do! @ list (throw: false) +func E_Compile_Do_I_list (l EID) EID { + return F_Compile_Do_I_list(ToList(OBJ(l)) ).ToEID()} \ No newline at end of file diff --git a/src/Reader/Reader-meta.go b/src/Reader/Reader-meta.go index 7959b29..94f3560 100644 --- a/src/Reader/Reader-meta.go +++ b/src/Reader/Reader-meta.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of module Reader.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:19 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:42 *****/ package Reader import (_ "fmt" @@ -282,7 +282,7 @@ var It *ClaireModule func MetaLoad() { It = MakeModule("Reader",Language.C_iClaire) - It.Comment = MakeString("Compiled on Saturday 01-01-2022 16:47:19(v4.0.04), lines:1782, warnings:3,safety:5") + It.Comment = MakeString("Compiled on Sunday 03-13-2022 07:28:42(v4.0.04), lines:1782, warnings:3,safety:5") ClEnv.Module_I = It // definition of the properties diff --git a/src/Reader/file.go b/src/Reader/file.go index 4cb4cf3..60eaf89 100644 --- a/src/Reader/file.go +++ b/src/Reader/file.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/meta/file.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:18 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:42 *****/ package Reader import (_ "fmt" @@ -64,13 +64,13 @@ func F_useless_c_integer (r int) *ClaireBoolean { if (r == 10) { ClEnv.NLine = (ClEnv.NLine+1) } - if ((r == C_reader.Space) || - ((r == 10) || - ((r == 13) || - ((r == 32) || - ((r == 160) || - (r == C_reader.Tab)))))) {return CTRUE - } else {return CFALSE}} + return MakeBoolean((r == C_reader.Space) || + (r == 10) || + (r == 13) || + (r == 32) || + (r == 160) || + (r == C_reader.Tab)) + } // The EID go function for: useless_c @ integer (throw: false) func E_useless_c_integer (r EID) EID { @@ -1232,8 +1232,8 @@ func E_max_any (x EID,y EID) EID { // check if the value if known? /* The go function for: known?(a:table,x:any) [status=0] */ func F_known_ask_table (a *ClaireTable ,x *ClaireAny ) *ClaireBoolean { - if (Core.F_get_table(a,x) != CNULL) {return CTRUE - } else {return CFALSE}} + return Core.F__I_equal_any(Core.F_get_table(a,x),CNULL) + } // The EID go function for: known? @ table (throw: false) func E_known_ask_table (a EID,x EID) EID { @@ -1241,8 +1241,8 @@ func E_known_ask_table (a EID,x EID) EID { /* The go function for: unknown?(a:table,x:any) [status=0] */ func F_unknown_ask_table (a *ClaireTable ,x *ClaireAny ) *ClaireBoolean { - if (Core.F_get_table(a,x) == CNULL) {return CTRUE - } else {return CFALSE}} + return Equal(Core.F_get_table(a,x),CNULL) + } // The EID go function for: unknown? @ table (throw: false) func E_unknown_ask_table (a EID,x EID) EID { @@ -1280,8 +1280,8 @@ func E_float_I_string (self EID) EID { // v3.00.46 a new macro /* The go function for: >=(self:any,x:any) [status=1] */ func F__sup_equal_any (self *ClaireAny ,x *ClaireAny ) *ClaireBoolean { - if (ToBoolean(OBJ(Core.F_CALL(ToProperty(C__inf_equal.Id()),ARGS(x.ToEID(),self.ToEID())))) == CTRUE) {return CTRUE - } else {return CFALSE}} + return ToBoolean(OBJ(Core.F_CALL(ToProperty(C__inf_equal.Id()),ARGS(x.ToEID(),self.ToEID())))) + } // The EID go function for: >= @ any (throw: false) func E__sup_equal_any (self EID,x EID) EID { diff --git a/src/Reader/inspect.go b/src/Reader/inspect.go index 1d283ce..6d26330 100644 --- a/src/Reader/inspect.go +++ b/src/Reader/inspect.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/meta/inspect.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:18 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:42 *****/ package Reader import (_ "fmt" @@ -984,8 +984,6 @@ func F_breakpoint_void () EID { if ErrorIn(loop_3) {Result = loop_3 break } else { - PRINC("") - loop_3 = EVOID } if ErrorIn(loop_3) {Result = loop_3 break @@ -1171,8 +1169,6 @@ func F_print_debug_info_integer (index int,stack_level int,cur_index int) EID { if ErrorIn(loop_1) {Result = loop_1 break } else { - PRINC("") - loop_1 = EVOID } if ErrorIn(loop_1) {Result = loop_1 break @@ -1586,7 +1582,6 @@ func F_logMeasure_string (s *ClaireString ) EID { p.UseAsOutput() PRINC("// log file produced on ") F_princ_string(F_date_I_integer(1)) - PRINC("") { var g0181 *ClaireClass _ = g0181 diff --git a/src/Reader/read.go b/src/Reader/read.go index de3597c..bf425e3 100644 --- a/src/Reader/read.go +++ b/src/Reader/read.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/meta/read.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:18 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:42 *****/ package Reader import (_ "fmt" @@ -40,8 +40,8 @@ func import_g0000() { // here we define the basic keywords /* The go function for: keyword?(x:any) [status=0] */ func F_keyword_ask_any (x *ClaireAny ) *ClaireBoolean { - if (x.Isa.IsIn(C_reserved_keyword) == CTRUE) {return CTRUE - } else {return CFALSE}} + return x.Isa.IsIn(C_reserved_keyword) + } // The EID go function for: keyword? @ any (throw: false) func E_keyword_ask_any (x EID) EID { diff --git a/src/Reader/syntax.go b/src/Reader/syntax.go index 54857b2..9f33e7c 100644 --- a/src/Reader/syntax.go +++ b/src/Reader/syntax.go @@ -1,5 +1,5 @@ /***** CLAIRE Compilation of file /Users/ycaseau/Dropbox/src/clairev4.03/src/meta/syntax.cl - [version 4.0.04 / safety 5] Saturday 01-01-2022 16:47:18 *****/ + [version 4.0.04 / safety 5] Sunday 03-13-2022 07:28:42 *****/ package Reader import (_ "fmt" @@ -38,13 +38,13 @@ func import_g0039() { // /* The go function for: operation?(y:any) [status=0] */ func F_operation_ask_any (y *ClaireAny ) *ClaireBoolean { - if ((y == C_as.Id()) || - ((y == C_L__equal.Id()) || - ((y.Isa.IsIn(C_operation) == CTRUE) || - ((Equal(y,C_OR.Value) == CTRUE) || - ((y == C__Z.Id()) || - (y == C_add.Id())))))) {return CTRUE - } else {return CFALSE}} + return MakeBoolean((y == C_as.Id()) || + (y == C_L__equal.Id()) || + (y.Isa.IsIn(C_operation) == CTRUE) || + (Equal(y,C_OR.Value) == CTRUE) || + (y == C__Z.Id()) || + (y == C_add.Id())) + } // The EID go function for: operation? @ any (throw: false) func E_operation_ask_any (y EID) EID { @@ -2602,7 +2602,7 @@ func (r *MetaReader ) Nextdefinition (x *ClaireAny ,y *ClaireAny ,old_ask *Clair } else if ((Equal(y,C_arrow.Value) == CTRUE) || (y == C__equal_sup.Id())) { r.LastArrow = Equal(y,C__equal_sup.Id()) - + Core.F_tformat_string(MakeString("---- note: ~S - method's range is assumed to be void \n"),3,MakeConstantList(x)) Result = r.Nextmethod(x, C_void.Id(), CFALSE, diff --git a/src/claire4.go b/src/claire4.go index 8f7956c..4225bda 100644 --- a/src/claire4.go +++ b/src/claire4.go @@ -1,4 +1,4 @@ -// --- System configuration file for "claire4" , ["Sunday 01-02-2022"] --- +// --- System configuration file for "claire4" , ["Sunday 03-13-2022"] --- package main import ( diff --git a/test/nonreg/Bug13.cl b/test/nonreg/Bug13.cl index d9b9cac..00ad248 100644 --- a/test/nonreg/Bug13.cl +++ b/test/nonreg/Bug13.cl @@ -102,5 +102,5 @@ COMError <: exception(diag:string) -> try raiseCOMError(3,3) catch COMError nil ] - (testOK()) +(testOK()) diff --git a/test/nonreg/Bug15.cl b/test/nonreg/Bug15.cl index 506034e..9953d31 100644 --- a/test/nonreg/Bug15.cl +++ b/test/nonreg/Bug15.cl @@ -31,7 +31,7 @@ seed:integer :: 0 // a consumer [eatPair() : integer - -> let (p1,p2) := getPair() in + -> let (p1,p2) := getPair() in // direct assign to tuple component pattern let c := 12 in (p1 + p2)] [testPair() diff --git a/test/nonreg/Bug5.cl b/test/nonreg/Bug5.cl index 45ca542..530038c 100644 --- a/test/nonreg/Bug5.cl +++ b/test/nonreg/Bug5.cl @@ -243,6 +243,10 @@ BB:float := 0.0 (testR()) // test lambdas with CLAIRE4 syntax ------------------------------------------------------- +LL :: (x:integer){x + 1} + +(//[0] --- here is (x){x + 1} : 12 -> ~A ----- // funcall(LL,12), + show(LL)) [testLambda() -> let l1 := (x:integer,y:integer){x + y}, diff --git a/test/nonreg/Bug6.cl b/test/nonreg/Bug6.cl index e06f44d..2283212 100644 --- a/test/nonreg/Bug6.cl +++ b/test/nonreg/Bug6.cl @@ -261,7 +261,6 @@ MONTHS :: (1 .. 12) // a bug from FXJ ? with v3.3.2 // INTERPRETED :: not(Id(compiler.active?)) - (testOK()) diff --git a/test/perf/testFib.cl b/test/perf/testFib.cl index e171922..21c0c37 100644 --- a/test/perf/testFib.cl +++ b/test/perf/testFib.cl @@ -27,7 +27,7 @@ foo(n:integer) : integer testSort(N:integer) -> let lst := make_array(N,float,0.0) in (time_set(), - for k in (1 .. 10) + for k in (1 .. 100) (for i in (1 .. N) lst[i] := random(1.0), qsort(lst,1,N)), time_show()) @@ -68,8 +68,8 @@ all() -> g(35), princ("fib(35.0)"), tfab(35.0), - princ("10 x quicksort(5000)"), - testSort(5000)) + princ("100 x quicksort(10000)"), + testSort(10000)) [main() -> //[0] test fib ----- //, diff --git a/test/perf/testSet.cl b/test/perf/testSet.cl index 964fd91..e80b3ea 100644 --- a/test/perf/testSet.cl +++ b/test/perf/testSet.cl @@ -38,7 +38,8 @@ all() -> - (princ("tsta(10000) "), tsta(10000), + (princ("tsta(2000) "), tsta(2000), + princ("tsta(10000) "), tsta(10000), princ("tstm(100000) "), tstm(100000)) diff --git a/test/rules/Airline.cl b/test/rules/Airline.cl new file mode 100644 index 0000000..20f23c1 --- /dev/null +++ b/test/rules/Airline.cl @@ -0,0 +1,252 @@ +// + ------------------------------------------------------- + +// | Micro Benchmark Suite for Inference Engines | +// | collected by Y.Caseau | +// | airline.cl | +// + --------------------------------------------------------+ + +// a travel example: a transitive closure with a parameter (time) +// we only use two attributes to propagate to make the compilation easier +// (i.e. shorter). A more proper program would use 4. + +// forward definition +flight <: thing +travel_plan <: object +request <: thing + +city <: thing(time_zone:integer = 0, + previous_request:set, + starting:set, + arriving:set, + starting_plan:set, + arriving_plan:set) + +flight <: thing(fromc:city,to:city, + depart:integer = 0, ; departure time + time:integer) ; flight duration + + +travel_plan <: object( depart:integer = 0, ; departure + time:integer = 0, ; actual flight time + end_at:integer, ; arrival + start_plan:city, + arrive_plan:city, + transit:list, + content:list) + +self_print(x:travel_plan) + -> printf("~A:~S:~A",depart(x),content(x),end_at(x)) + +request <: thing(depart:integer = 7, + end_at:integer = 20, + solutions:list, + start:city, + arrive:city) + +// setup inverses (could be done using rules) +(inverse(starting) := fromc, + inverse(arriving) := to, + inverse(arrive_plan) := arriving_plan, + inverse(start_plan) := starting_plan) + +// rule compiler declarations +(known!(to,fromc,start_plan,arrive_plan)) +// mode(exists) WHAT THE FUCK IS THIS ? +// event(arrive) + +DEBUG:integer := 5 +Cnt:integer :: 0 + +// create a request (if needed) +request!(c1:city,c2:city,dep:integer,arr:integer) + -> let r := unknown in + (for r2 in previous_request(c1) + (if (arrive(r2) = c2 & depart(r2) = dep & end_at(r2) >= arr) + (r := r2, break(true))), + if known?(r) r + else request(name = (name(c1) /+ name(c2)), + depart = dep, end_at = arr)) + +// register a solution if it is new +registerSol(r:request,t:travel_plan) + -> (if not(for t2 in solutions(r) + (if (content(t) = content(t2)) break())) + solutions(r) :add t) + +// a simple travel plan ! +simple_plan(r:request,f:flight) :: rule( + (fromc(f) = start(r) & to(f) = arrive(r) & + depart(f) >= depart(r) & (depart(f) + time(f)) <= end_at(r)) + => let t := travel_plan(depart = depart(f), end_at = (depart(f) + time(f)), + content = list(f), time = time(f)) in + (//[DEBUG] create simple travel plan ~S // t, + Cnt :+ 1, + start_plan(t) := fromc(f), + arrive_plan(t) := to(f), + registerSol(r,t))) + +// create an auxiliary request +complex_plan(r:request,f:flight) :: rule( + (fromc(f) = start(r) & to(f) != arrive(r) & + depart(f) >= depart(r) & (depart(f) + time(f)) <= end_at(r) ) + => let r2 := request!(to(f),arrive(r),(depart(f) + time(f)),end_at(r)) in + (Cnt :+ 1, + if not(r2 % previous_request(to(f))) + (//[DEBUG] create req. ~S: ~A -> ~S // r2, depart(r),end_at(r), + previous_request(to(f)) :add r2, + start(r2) := to(f), + arrive(r2) := arrive(r)))) + + +// how to merge 2 plans: transitive closure +merge_plan(r:request,t:travel_plan,f:flight) :: rule( + (arrive(r) = arrive_plan(t) & end_at(t) <= end_at(r) & + fromc(f) = start(r) & to(f) = start_plan(t) & + depart(f) >= depart(r) & (time(f) + depart(f)) <= depart(t)) + => (Cnt :+ 1, + if (to(f) % transit(t)) nil ;; prevent loops ! + else let t2 := travel_plan(depart = depart(f), end_at = end_at(t), + content = list(f) /+ content(t), + transit = list(to(f)) /+ transit(t), + time = (time(f) + time(t))) in + (//[DEBUG] create complex travel plan ~S for ~S // t2,r, + start_plan(t2) := fromc(f), + arrive_plan(t2) := arrive_plan(t), + registerSol(r,t2)))) + + +// interface to create a query +howto(c1:city,c2:city,dep:integer,arr:integer) : void + -> let r := request!(c1,c2,dep,arr) in + (if not(solutions(r)) + (start(r) := c1, arrive(r) := c2), + printf("solutions = ~S\n",solutions(r)), + printf("best solutions = ~S\n",solutions!(r))) + + +// list of locally optimal solutions +[better(t1:travel_plan,t2:travel_plan) : boolean + -> (time(t1) <= time(t2) & end_at(t1) <= end_at(t2) & + length(transit(t1)) <= length(transit(t2))) ] + +[solutions!(r:request) : list + -> let l1 := list(), l2 := solutions(r) in + (for t2 in l2 + (if exists(t1 in l1 | better(t1,t2)) nil + else if (for t1 in l1 + (if better(t2,t1) + (l1 :delete t1, l1 :add t2, break()))) nil + else l1 :add t2), + l1) ] + +// schedule +PRINT:boolean :: true +[howto(c1:city,c2:city,l:integer) : void + -> time_set(), + for i in (7 .. 19) + (let r := request!(c1,c2,i,i + l) in + (start(r) := c1, arrive(r) := c2, + if PRINT printf("~A == ~S\n",i,solutions!(r)), + cleanTP())), + time_show() ] + +// remove the previous travel plans +[cleanTP() + -> for c in city + (c.starting_plan := set(), + c.arriving_plan := set()) ] + + +// ----------------- flight database ------------------------------ + +Paris :: city() +London :: city() +Frankfurt :: city() +Rome :: city() +Berlin :: city() +Athens :: city() +Madrid :: city() + + +AF001 :: flight(fromc = Paris, to = London, time = 1, depart = 7) +AF002 :: flight(fromc = London, to = Paris, time = 1, depart = 9) +AF011 :: flight(fromc = Paris, to = London, time = 1, depart = 12) +AF012 :: flight(fromc = London, to = Paris, time = 1, depart = 13) +AF021 :: flight(fromc = Paris, to = London, time = 1, depart = 18) +AF022 :: flight(fromc = London, to = Paris, time = 1, depart = 19) +AF201 :: flight(fromc = Paris, to = Rome, time = 2, depart = 10) +AF202 :: flight(fromc = Rome, to = Paris, time = 2, depart = 13) +AF301 :: flight(fromc = Paris, to = Frankfurt, time = 1, depart = 8) +AF302 :: flight(fromc = Frankfurt, to = Paris, time = 1, depart = 9) +AF311 :: flight(fromc = Paris, to = Frankfurt, time = 1, depart = 10) +AF312 :: flight(fromc = Frankfurt, to = Paris, time = 1, depart = 12) +AF321 :: flight(fromc = Paris, to = Frankfurt, time = 1, depart = 15) +AF322 :: flight(fromc = Frankfurt, to = Paris, time = 1, depart = 16) +AF331 :: flight(fromc = Paris, to = Frankfurt, time = 1, depart = 19) +AF332 :: flight(fromc = Frankfurt, to = Paris, time = 1, depart = 20) +AF401 :: flight(fromc = Paris, to = Athens, time = 4, depart = 9) +AF402 :: flight(fromc = Athens, to = Paris, time = 4, depart = 16) +AF501 :: flight(fromc = Paris, to = Berlin, time = 2, depart = 8) +AF502 :: flight(fromc = Berlin, to = Paris, time = 2, depart = 18) +AF601 :: flight(fromc = Paris, to = Madrid, time = 2, depart = 11) +AF602 :: flight(fromc = Madrid, to = Paris, time = 2, depart = 17) + +BA001 :: flight(fromc = London, to = Paris, time = 1, depart = 8) +BA002 :: flight(fromc = Paris, to = London, time = 1, depart = 10) +BA011 :: flight(fromc = London, to = Paris, time = 1, depart = 16) +BA012 :: flight(fromc = Paris, to = London, time = 1, depart = 18) +BA021 :: flight(fromc = London, to = Berlin, time = 2, depart = 8) +BA022 :: flight(fromc = Berlin, to = London, time = 2, depart = 14) +BA201 :: flight(fromc = London, to = Rome, time = 2, depart = 11) +BA202 :: flight(fromc = Rome, to = London, time = 2, depart = 14) +BA301 :: flight(fromc = London, to = Frankfurt, time = 1, depart = 8) +BA302 :: flight(fromc = Frankfurt, to = London, time = 1, depart = 9) +BA311 :: flight(fromc = London, to = Frankfurt, time = 1, depart = 11) +BA312 :: flight(fromc = Frankfurt, to = London, time = 1, depart = 12) +BA321 :: flight(fromc = London, to = Frankfurt, time = 1, depart = 16) +BA322 :: flight(fromc = Frankfurt, to = London, time = 1, depart = 17) +BA331 :: flight(fromc = London, to = Frankfurt, time = 1, depart = 19) +BA332 :: flight(fromc = Frankfurt, to = London, time = 1, depart = 20) +BA401 :: flight(fromc = London, to = Athens, time = 4, depart = 15) +BA402 :: flight(fromc = Athens, to = London, time = 4, depart = 9) +BA501 :: flight(fromc = London, to = Berlin, time = 2, depart = 8) +BA502 :: flight(fromc = Berlin, to = London, time = 2, depart = 18) +BA601 :: flight(fromc = London, to = Madrid, time = 2, depart = 8) +BA602 :: flight(fromc = Madrid, to = Frankfurt, time = 2, depart = 15) + +LU001 :: flight(fromc = Frankfurt, to = Paris, time = 1, depart = 8) +LU002 :: flight(fromc = Paris, to = Frankfurt, time = 1, depart = 10) +LU011 :: flight(fromc = Frankfurt, to = Paris, time = 1, depart = 16) +LU012 :: flight(fromc = Paris, to = Frankfurt, time = 1, depart = 18) +LU201 :: flight(fromc = Frankfurt, to = Rome, time = 2, depart = 11) +LU202 :: flight(fromc = Rome, to = Frankfurt, time = 2, depart = 14) +LU211 :: flight(fromc = Frankfurt, to = Rome, time = 2, depart = 17) +LU212 :: flight(fromc = Rome, to = Frankfurt, time = 2, depart = 19) +LU213 :: flight(fromc = Rome, to = Frankfurt, time = 2, depart = 7) +LU214 :: flight(fromc = Frankfurt, to = Rome, time = 2, depart = 19) +LU301 :: flight(fromc = Berlin, to = London, time = 1, depart = 8) +LU302 :: flight(fromc = London, to = Berlin, time = 1, depart = 9) +LU311 :: flight(fromc = Frankfurt, to = London, time = 1, depart = 11) +LU312 :: flight(fromc = London, to = Frankfurt, time = 1, depart = 12) +LU321 :: flight(fromc = Frankfurt, to = London, time = 1, depart = 16) +LU322 :: flight(fromc = London, to = Frankfurt, time = 1, depart = 17) +LU401 :: flight(fromc = Frankfurt, to = Athens, time = 3, depart = 9) +LU402 :: flight(fromc = Athens, to = Frankfurt, time = 3, depart = 13) +LU411 :: flight(fromc = Berlin, to = Athens, time = 2, depart = 14) +LU412 :: flight(fromc = Athens, to = Berlin, time = 2, depart = 18) +LU501 :: flight(fromc = Frankfurt, to = Berlin, time = 1, depart = 7) +LU502 :: flight(fromc = Berlin, to = Frankfurt, time = 1, depart = 9) +LU511 :: flight(fromc = Frankfurt, to = Berlin, time = 1, depart = 12) +LU512 :: flight(fromc = Berlin, to = Frankfurt, time = 1, depart = 13) +LU521 :: flight(fromc = Frankfurt, to = Berlin, time = 1, depart = 18) +LU522 :: flight(fromc = Berlin, to = Frankfurt, time = 1, depart = 19) +LU601 :: flight(fromc = Berlin, to = Madrid, time = 3, depart = 19) +LU602 :: flight(fromc = Madrid, to = Paris, time = 2, depart = 8) + +// test +do_test() : void -> howto(Paris,Athens,10) + +[do_test1() : void + -> time_set(), + for i in (1 .. 200) request!(Paris,Athens,i,10 + i), + time_show() ] + diff --git a/test/rules/airline-old.cl b/test/rules/airline-old.cl new file mode 100644 index 0000000..e666663 --- /dev/null +++ b/test/rules/airline-old.cl @@ -0,0 +1,46 @@ +;; This programs compute the cities that one can visit from another city +;; +FLIGHT <: object +CITY <: thing + +CITY <: thing(flight:set[CITY], + directflight:set[CITY], + flight_of:set[CITY], + directflight_of:set[CITY], + departs:set[FLIGHT], + arrives:set[FLIGHT], + query:boolean = false) + +FLIGHT <: object(leaves:CITY, + go-to:CITY, + departure:integer, + arrival:integer, + id:symbol) + + +// set inverses +(inverse(flight) := flight_of, + inverse(directflight) := directflight_of, + inverse(leaves) := departs, + inverse(go-to) := arrives) + +event(query,flight,directflight) + +// rules +Rr1(x:CITY, y:CITY) :: rule( + query(x) = true & exists(z:FLIGHT, leaves(z) = x & go-to(z) = y) + => (directflight(x) :add y, query(y) := true)) + +Rr2(x:CITY, y:CITY) :: rule( + y % directflight(x) | exists(z:CITY, z % flight(x) & y % directflight(z)) + => flight(x) :add y ) + +[do_test() + -> let m := value("muenchen") in + (time_set(), + query(m) := true, + time_show(), + printf("there are ~A cities where you can go from Muenchen.~%", + size(flight(m)))) ] + +[do_load() -> load(home() / "lib\\other\\rule\\airdata") ] diff --git a/test/rules/dinner.cl b/test/rules/dinner.cl index 708d91c..a28fa45 100644 --- a/test/rules/dinner.cl +++ b/test/rules/dinner.cl @@ -6,7 +6,7 @@ // this looks like a piece of ... :-( DEBUG :: 5 -N :: 32 +N :: 1000 // 32 NUP :: (N + 1) Guest <: object(male?:boolean = true, @@ -281,7 +281,7 @@ if (n > 4) ( // N = 128 : #firings = 4254, CPU = 531ms, ips = 8011 main() : void - -> (//[0] runs the dinner problem with N = // N, + -> (//[0] runs the dinner problem with N = ~A // N, do_test(), exit(0)) diff --git a/test/rules/filter.cl b/test/rules/filter.cl index 324831a..8e98eef 100644 --- a/test/rules/filter.cl +++ b/test/rules/filter.cl @@ -83,6 +83,7 @@ do_test0() : void // performance test // N = 1000000 -> 500ms => 20 MIPS (million inference per second) +// CLAIRE4: (delta = 40ms) => 250 MIPS main() : void -> (printf("Talarian filter test with ~S frames\n",N), printf("without rules\n"), diff --git a/test/rules/monkey.cl b/test/rules/monkey.cl index 84f3879..eecbf10 100644 --- a/test/rules/monkey.cl +++ b/test/rules/monkey.cl @@ -231,7 +231,7 @@ goal-5 :: goal(action = catch_a, concerned_with = grape) // x 100 [do_test() : void -> time_set(), - for x in (1 .. 100) // 100000) + for x in (1 .. 100000) // 100 interpreted, 100000 compiled (goals(cheetah) :add goal-1, //[TRACE] do I have the banana? //, goals(cheetah) :add goal-2,