projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
flush
[m6w6/ext-psi]
/
src
/
parser.h
diff --git
a/src/parser.h
b/src/parser.h
index faa95e4931d9811788bf76e5decaa87a87fc08d6..28f436f592e98dc11609f6e0ade3d5d3f0dd2ba1 100644
(file)
--- a/
src/parser.h
+++ b/
src/parser.h
@@
-576,10
+576,11
@@
typedef struct num_exp {
token_t t;
union {
char *numb;
token_t t;
union {
char *numb;
- c
har
*cnst;
+ c
onstant
*cnst;
decl_var *dvar;
} u;
token_t operator;
decl_var *dvar;
} u;
token_t operator;
+ int (*calculator)(int t1, impl_val *v1, int t2, impl_val *v2, impl_val *res);
struct num_exp *operand;
} num_exp;
struct num_exp *operand;
} num_exp;
@@
-587,10
+588,8
@@
static inline num_exp *init_num_exp(token_t t, void *num) {
num_exp *exp = calloc(1, sizeof(*exp));
switch (exp->t = t) {
case PSI_T_NUMBER:
num_exp *exp = calloc(1, sizeof(*exp));
switch (exp->t = t) {
case PSI_T_NUMBER:
- exp->u.numb = strdup(num);
- break;
case PSI_T_NSNAME:
case PSI_T_NSNAME:
- exp->u.
cnst
= strdup(num);
+ exp->u.
numb
= strdup(num);
break;
case PSI_T_NAME:
exp->u.dvar = num;
break;
case PSI_T_NAME:
exp->u.dvar = num;
@@
-606,7
+605,6
@@
static inline void free_num_exp(num_exp *exp) {
free(exp->u.numb);
break;
case PSI_T_NSNAME:
free(exp->u.numb);
break;
case PSI_T_NSNAME:
- free(exp->u.cnst);
break;
case PSI_T_NAME:
free_decl_var(exp->u.dvar);
break;
case PSI_T_NAME:
free_decl_var(exp->u.dvar);