summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--combined.js57
-rw-r--r--js/Misc/DSUPER.js6
-rw-r--r--js/Misc/EXPRESSION.js5
-rw-r--r--js/NonLinear/TrigFun.js42
-rw-r--r--js/Sources/GEN_SQR.js4
-rw-r--r--js/Sources/PULSE_SC.js4
-rwxr-xr-xsci2jslex.py12
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):