diff options
-rw-r--r-- | combined.js | 57 | ||||
-rw-r--r-- | js/Misc/DSUPER.js | 6 | ||||
-rw-r--r-- | js/Misc/EXPRESSION.js | 5 | ||||
-rw-r--r-- | js/NonLinear/TrigFun.js | 42 | ||||
-rw-r--r-- | js/Sources/GEN_SQR.js | 4 | ||||
-rw-r--r-- | js/Sources/PULSE_SC.js | 4 | ||||
-rwxr-xr-x | sci2jslex.py | 12 |
7 files changed, 109 insertions, 21 deletions
diff --git a/combined.js b/combined.js index 2c1ef7ed..212f4914 100644 --- a/combined.js +++ b/combined.js @@ -6711,9 +6711,9 @@ while (!ok) { if (!ok) { return; } -%scicos_context=scicos_context; +PREVAR_scicos_context=scicos_context; sblock=x.model.rpar; -[%scicos_context,ierr]=script2var(sblock.props.context,%scicos_context); +[PREVAR_scicos_context,ierr]=script2var(sblock.props.context,PREVAR_scicos_context); if (ierr==0) { [sblock,%w,needcompile2,ok]=do_eval(sblock,list()); if (ok) { @@ -7431,9 +7431,9 @@ while (!ok) { if (!ok) { return; } -%scicos_context=scicos_context; +PREVAR_scicos_context=scicos_context; sblock=x.model.rpar; -[%scicos_context,ierr]=script2var(sblock.props.context,%scicos_context); +[PREVAR_scicos_context,ierr]=script2var(sblock.props.context,PREVAR_scicos_context); if (ierr==0) { [sblock,%w,needcompile2,ok]=do_eval(sblock,list()); if (ok) { @@ -12999,7 +12999,7 @@ x=arg1; return; } context=[arg1.model.rpar.props.context]; -[%scicos_context,ierr]=script2var(context,%scicos_context); +[PREVAR_scicos_context,ierr]=script2var(context,PREVAR_scicos_context); if (ierr!=0) { x=arg1; return; @@ -13009,11 +13009,11 @@ for (i=2;i<=size(exprs0,1);i+=1) { tt=tt+",scicos_context."+exprs0(i); } ss=graphics.exprs(2)(3); -scicos_context=%scicos_context; +scicos_context=PREVAR_scicos_context; execstr("[ok,"+tt+",exprs]=scicos_getvalue(btitre,bitems,ss,exprs)"); if (ok) { x=arg1; -%scicos_context=scicos_context; +PREVAR_scicos_context=scicos_context; sblock=x.model.rpar; [sblock,%w,needcompile2,ok]=do_eval(sblock,list(),scicos_context); y=max(2,needcompile,needcompile2); @@ -16786,6 +16786,47 @@ INVBLK.prototype.set = function INVBLK() { x=arg1; } } +/* autogenerated from "macros/NonLinear/TrigFun.sci" */ +function TrigFun() { +TrigFun.prototype.define = function TrigFun() { +model=scicos_model(); +model.sim=list("sin_blk",4); +model.in1=-1; +model.out=-1; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs="sin"; +gr_i=[]; +x=standard_define([4,2],model,exprs,gr_i); +} +TrigFun.prototype.details = function TrigFun() { +} +TrigFun.prototype.get = function TrigFun() { +} +TrigFun.prototype.set = function TrigFun() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +PREVAR_FF=[["sin"],["cos"],["tan"],["asin"],["acos"],["atan"],["sinh"],["cosh"],["tanh"],["asinh"],["acosh"],["atanh"]]; +PREVAR_GG=[["Choose among "+strcat(PREVAR_FF.slice(1-1,4),", ")],[strcat(PREVAR_FF.slice(5-1,$),", ")]]; +while (true) { +[ok,fun,exprs]=scicos_getvalue(PREVAR_GG,"Function",list("str",1),exprs); +if (!ok) { +break; +} +if (find(PREVAR_FF==fun)==[]) { +message("Sorry but "+fun+" is not in the list!"); +} else { +graphics.exprs=exprs; +execstr("model.sim=list(\'"+fun+"_blk\',4)"); +x.graphics=graphics; +x.model=model; +break; +} +} +} +} /* autogenerated from "macros/NonLinear/EXPBLK_m.sci" */ function EXPBLK_m() { EXPBLK_m.prototype.define = function EXPBLK_m() { @@ -17206,4 +17247,4 @@ x=arg1; } } -/* made from 261/274 files */ +/* made from 262/274 files */ diff --git a/js/Misc/DSUPER.js b/js/Misc/DSUPER.js index 90eca99e..88f4a8e8 100644 --- a/js/Misc/DSUPER.js +++ b/js/Misc/DSUPER.js @@ -24,7 +24,7 @@ x=arg1; return; } context=[arg1.model.rpar.props.context]; -[%scicos_context,ierr]=script2var(context,%scicos_context); +[PREVAR_scicos_context,ierr]=script2var(context,PREVAR_scicos_context); if (ierr!=0) { x=arg1; return; @@ -34,11 +34,11 @@ for (i=2;i<=size(exprs0,1);i+=1) { tt=tt+",scicos_context."+exprs0(i); } ss=graphics.exprs(2)(3); -scicos_context=%scicos_context; +scicos_context=PREVAR_scicos_context; execstr("[ok,"+tt+",exprs]=scicos_getvalue(btitre,bitems,ss,exprs)"); if (ok) { x=arg1; -%scicos_context=scicos_context; +PREVAR_scicos_context=scicos_context; sblock=x.model.rpar; [sblock,%w,needcompile2,ok]=do_eval(sblock,list(),scicos_context); y=max(2,needcompile,needcompile2); diff --git a/js/Misc/EXPRESSION.js b/js/Misc/EXPRESSION.js index b25fbcb1..2495ad49 100644 --- a/js/Misc/EXPRESSION.js +++ b/js/Misc/EXPRESSION.js @@ -1,5 +1,4 @@ -Syntax error in input LexToken(PREVAR,'%scicos_context',1,1696) -Syntax error in input LexToken(PREVAR,'%foo',1,4175) -Syntax error in input LexToken(PREVAR,'%foo',1,4610) +Syntax error in input LexToken(FUNCTION,'function',1,4122) +Syntax error in input LexToken(VAR,'PREVAR_foo',1,4610) /* autogenerated from "macros/Misc/EXPRESSION.sci" */ None diff --git a/js/NonLinear/TrigFun.js b/js/NonLinear/TrigFun.js index 51a2ef27..ea7b3744 100644 --- a/js/NonLinear/TrigFun.js +++ b/js/NonLinear/TrigFun.js @@ -1,3 +1,41 @@ -Syntax error in input LexToken(OPENBRACKET,'(',1,1210) /* autogenerated from "macros/NonLinear/TrigFun.sci" */ -None +function TrigFun() { +TrigFun.prototype.define = function TrigFun() { +model=scicos_model(); +model.sim=list("sin_blk",4); +model.in1=-1; +model.out=-1; +model.blocktype="c"; +model.dep_ut=[true,false]; +exprs="sin"; +gr_i=[]; +x=standard_define([4,2],model,exprs,gr_i); +} +TrigFun.prototype.details = function TrigFun() { +} +TrigFun.prototype.get = function TrigFun() { +} +TrigFun.prototype.set = function TrigFun() { +x=arg1; +graphics=arg1.graphics; +exprs=graphics.exprs; +model=arg1.model; +PREVAR_FF=[["sin"],["cos"],["tan"],["asin"],["acos"],["atan"],["sinh"],["cosh"],["tanh"],["asinh"],["acosh"],["atanh"]]; +PREVAR_GG=[["Choose among "+strcat(PREVAR_FF.slice(1-1,4),", ")],[strcat(PREVAR_FF.slice(5-1,$),", ")]]; +while (true) { +[ok,fun,exprs]=scicos_getvalue(PREVAR_GG,"Function",list("str",1),exprs); +if (!ok) { +break; +} +if (find(PREVAR_FF==fun)==[]) { +message("Sorry but "+fun+" is not in the list!"); +} else { +graphics.exprs=exprs; +execstr("model.sim=list(\'"+fun+"_blk\',4)"); +x.graphics=graphics; +x.model=model; +break; +} +} +} +} diff --git a/js/Sources/GEN_SQR.js b/js/Sources/GEN_SQR.js index 4a6f19c9..7bab957c 100644 --- a/js/Sources/GEN_SQR.js +++ b/js/Sources/GEN_SQR.js @@ -71,9 +71,9 @@ while (!ok) { if (!ok) { return; } -%scicos_context=scicos_context; +PREVAR_scicos_context=scicos_context; sblock=x.model.rpar; -[%scicos_context,ierr]=script2var(sblock.props.context,%scicos_context); +[PREVAR_scicos_context,ierr]=script2var(sblock.props.context,PREVAR_scicos_context); if (ierr==0) { [sblock,%w,needcompile2,ok]=do_eval(sblock,list()); if (ok) { diff --git a/js/Sources/PULSE_SC.js b/js/Sources/PULSE_SC.js index f38ce84e..f7a048e4 100644 --- a/js/Sources/PULSE_SC.js +++ b/js/Sources/PULSE_SC.js @@ -66,9 +66,9 @@ while (!ok) { if (!ok) { return; } -%scicos_context=scicos_context; +PREVAR_scicos_context=scicos_context; sblock=x.model.rpar; -[%scicos_context,ierr]=script2var(sblock.props.context,%scicos_context); +[PREVAR_scicos_context,ierr]=script2var(sblock.props.context,PREVAR_scicos_context); if (ierr==0) { [sblock,%w,needcompile2,ok]=do_eval(sblock,list()); if (ok) { diff --git a/sci2jslex.py b/sci2jslex.py index 44427247..3ee294af 100755 --- a/sci2jslex.py +++ b/sci2jslex.py @@ -47,10 +47,15 @@ syntaxtokens = { } predefinedvariables = { + 'FF': 'PREVAR_SUBSTITUTE', + 'GG': 'PREVAR_SUBSTITUTE', 'f': 'PREVAR_BOOLEAN', + 'foo': 'PREVAR_SUBSTITUTE', 'e': 'PREVAR_FLOAT', 'i': 'PREVAR_COMPLEX', + 'jji': 'PREVAR_SUBSTITUTE', 'pi': 'PREVAR_FLOAT', + 'scicos_context': 'PREVAR_SUBSTITUTE', 't': 'PREVAR_BOOLEAN', } @@ -91,6 +96,7 @@ functioncalls = { } objects = { + 'PREVAR_scicos_context', 'arg1', 'scicos_context', } @@ -182,7 +188,11 @@ def t_PREVAR(t): r'%[a-zA-Z_][a-zA-Z0-9_]*' global afterarray afterarray = False - t.type = predefinedvariables.get(t.value[1:], 'PREVAR') + base = t.value[1:] + t.type = predefinedvariables.get(base, 'PREVAR') + if t.type == 'PREVAR_SUBSTITUTE': + t.type = 'VAR' + t.value = 'PREVAR_' + base return t def t_VAR(t): |