Soft'N'Design Software
/
projects
/
calc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
correct switching context
[calc.git]
/
parser.c
diff --git
a/parser.c
b/parser.c
index 4e360ddaf70bec25ea4cb46ad72bd2bb12aa276e..74e980b39c4dac2ea4e3f812d7fe0483c8e9989e 100644
(file)
--- a/
parser.c
+++ b/
parser.c
@@
-175,8
+175,8
@@
keyword_t functions[NB_FUNCTIONS] = {
{ "pop", Pop, 0, 3, 5},
{ "push", Push, 1, 4, 5},
{ "put", Put, 2, 3, 5},
{ "pop", Pop, 0, 3, 5},
{ "push", Push, 1, 4, 5},
{ "put", Put, 2, 3, 5},
- { "set", Set, MAX_ARGS, 3,
9
},
- { "show", Show, 0, 4,
9
},
+ { "set", Set, MAX_ARGS, 3,
5
},
+ { "show", Show, 0, 4,
5
},
};
#define NB_CONSTANTS 3
};
#define NB_CONSTANTS 3
@@
-871,12
+871,17
@@
double call (int id, int nbops, element_t **ops)
element_t *elements = dupelement ((programs + n)->root);
ret = evaluate_element (elements, 0);
delelement (elements);
element_t *elements = dupelement ((programs + n)->root);
ret = evaluate_element (elements, 0);
delelement (elements);
+ (programs + n)->answer = answer;
+ (programs + n)->storage = storage;
+ (programs + n)->storage_size = storage_size;
+ (programs + n)->stack = stack;
+ (programs + n)->stack_size = stack_size;
/* restore context */
answer = tmp.answer;
storage = tmp.storage;
/* restore context */
answer = tmp.answer;
storage = tmp.storage;
- storage
= tmp.storag
e;
- stack
_size = tmp.stack_size
;
+ storage
_size = tmp.storage_siz
e;
+ stack
= tmp.stack
;
stack_size = tmp.stack_size;
return ret;
stack_size = tmp.stack_size;
return ret;