summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--combined.js53
-rw-r--r--js/Misc/DSUPER.js52
-rwxr-xr-xsci2jsyacc.py17
3 files changed, 115 insertions, 7 deletions
diff --git a/combined.js b/combined.js
index 4cafe115..319dca8f 100644
--- a/combined.js
+++ b/combined.js
@@ -12914,6 +12914,57 @@ break;
needcompile=resume(needcompile)
}
}
+/* autogenerated from "macros/Misc/DSUPER.sci" */
+function DSUPER() {
+DSUPER.prototype.define = function DSUPER() {
+}
+DSUPER.prototype.details = function DSUPER() {
+}
+DSUPER.prototype.get = function DSUPER() {
+}
+DSUPER.prototype.set = function DSUPER() {
+y=needcompile;
+typ=list();
+graphics=arg1.graphics;
+if ((length(graphics.exprs)==0)) {
+warnBlockByUID(arg1.model.label,gettext("Invalid masked block."));
+x=arg1;
+return;
+}
+exprs=graphics.exprs(1);
+exprs0=graphics.exprs(2)(1);
+btitre=graphics.exprs(2)(2)(1);
+bitems=graphics.exprs(2)(2).slice(2-1,$);
+if (exprs0==[]) {
+x=arg1;
+return;
+}
+context=[arg1.model.rpar.props.context];
+[%scicos_context,ierr]=script2var(context,%scicos_context);
+if (ierr!=0) {
+x=arg1;
+return;
+}
+tt="scicos_context."+exprs0(1);
+for (i=2;i<=size(exprs0,1);i+=1) {
+tt=tt+",scicos_context."+exprs0(i);
+}
+ss=graphics.exprs(2)(3);
+scicos_context=%scicos_context;
+execstr("[ok,"+tt+",exprs]=scicos_getvalue(btitre,bitems,ss,exprs)");
+if (ok) {
+x=arg1;
+%scicos_context=scicos_context;
+sblock=x.model.rpar;
+[sblock,%w,needcompile2,ok]=do_eval(sblock,list(),scicos_context);
+y=max(2,needcompile,needcompile2);
+x.graphics.exprs[1-1]=exprs;
+x.model.rpar=sblock;
+} else {
+x=arg1;
+}
+}
+}
/* autogenerated from "macros/Misc/EDGE_TRIGGER.sci" */
function EDGE_TRIGGER() {
EDGE_TRIGGER.prototype.define = function EDGE_TRIGGER() {
@@ -17096,4 +17147,4 @@ x=arg1;
}
}
-/* made from 259/274 files */
+/* made from 260/274 files */
diff --git a/js/Misc/DSUPER.js b/js/Misc/DSUPER.js
index 1475ffe4..90eca99e 100644
--- a/js/Misc/DSUPER.js
+++ b/js/Misc/DSUPER.js
@@ -1,3 +1,51 @@
-Syntax error in input LexToken(END,'end',1,2533)
/* autogenerated from "macros/Misc/DSUPER.sci" */
-None
+function DSUPER() {
+DSUPER.prototype.define = function DSUPER() {
+}
+DSUPER.prototype.details = function DSUPER() {
+}
+DSUPER.prototype.get = function DSUPER() {
+}
+DSUPER.prototype.set = function DSUPER() {
+y=needcompile;
+typ=list();
+graphics=arg1.graphics;
+if ((length(graphics.exprs)==0)) {
+warnBlockByUID(arg1.model.label,gettext("Invalid masked block."));
+x=arg1;
+return;
+}
+exprs=graphics.exprs(1);
+exprs0=graphics.exprs(2)(1);
+btitre=graphics.exprs(2)(2)(1);
+bitems=graphics.exprs(2)(2).slice(2-1,$);
+if (exprs0==[]) {
+x=arg1;
+return;
+}
+context=[arg1.model.rpar.props.context];
+[%scicos_context,ierr]=script2var(context,%scicos_context);
+if (ierr!=0) {
+x=arg1;
+return;
+}
+tt="scicos_context."+exprs0(1);
+for (i=2;i<=size(exprs0,1);i+=1) {
+tt=tt+",scicos_context."+exprs0(i);
+}
+ss=graphics.exprs(2)(3);
+scicos_context=%scicos_context;
+execstr("[ok,"+tt+",exprs]=scicos_getvalue(btitre,bitems,ss,exprs)");
+if (ok) {
+x=arg1;
+%scicos_context=scicos_context;
+sblock=x.model.rpar;
+[sblock,%w,needcompile2,ok]=do_eval(sblock,list(),scicos_context);
+y=max(2,needcompile,needcompile2);
+x.graphics.exprs[1-1]=exprs;
+x.model.rpar=sblock;
+} else {
+x=arg1;
+}
+}
+}
diff --git a/sci2jsyacc.py b/sci2jsyacc.py
index e8e91e30..754451c8 100755
--- a/sci2jsyacc.py
+++ b/sci2jsyacc.py
@@ -134,20 +134,29 @@ def p_forstatementblock_forstatement(p):
'forstatementblock : forstatement statementblock'
p[0] = '%s%s' % (p[1], p[2])
-def p_casestatementblock_casestatementblock_casestatement(p):
+def p_casestatementblock_casestatementblock_casestatement_statementblock(p):
'casestatementblock : casestatementblock casestatement statementblock'
p[0] = '%s%s%s' % (p[1], p[2], p[3])
-def p_casestatementblock_casestatement(p):
+def p_casestatementblock_casestatementblock_casestatement(p):
+ 'casestatementblock : casestatementblock casestatement'
+ p[0] = '%s%s%s' % (p[1], p[2], '')
+
+def p_casestatementblock_casestatement_statementblock(p):
'casestatementblock : casestatement statementblock'
p[0] = '%s%s' % (p[1], p[2])
-def p_casejobstatementblock_casejobstatementblock_casejobstatement(p):
+def p_casejobstatementblock_casejobstatementblock_casejobstatement_statementblock(p):
'casejobstatementblock : casejobstatementblock casejobstatement statementblock'
JOB_BLOCKS[p[2]] = p[3]
p[0] = ''
-def p_casejobstatementblock_casejobstatement(p):
+def p_casejobstatementblock_casejobstatementblock_casejobstatement(p):
+ 'casejobstatementblock : casejobstatementblock casejobstatement'
+ JOB_BLOCKS[p[2]] = ''
+ p[0] = ''
+
+def p_casejobstatementblock_casejobstatement_statementblock(p):
'casejobstatementblock : casejobstatement statementblock'
JOB_BLOCKS[p[1]] = p[2]
p[0] = ''