|
|
@@ -5655,9 +5655,16 @@ void compile_node(buffer_t *gbuf, buffer_t *buf, list_t *ctx, table_t *ltab,
|
|
|
char *name = node->t->text;
|
|
|
node_t *n = const_get(name);
|
|
|
|
|
|
- if (n)
|
|
|
+ if (n) {
|
|
|
+ node_t *r = mexpr_eval(n);
|
|
|
+ if (r->tag == N_EXPRSTMT)
|
|
|
+ r = r->a;
|
|
|
+
|
|
|
+ if (r != NULL && IS_EXPR(r))
|
|
|
+ n = r;
|
|
|
+
|
|
|
compile_node(gbuf, buf, ctx, ltab, lstk, sstk, lbl, n);
|
|
|
- else
|
|
|
+ } else
|
|
|
EMIT("qi_get(state, \"%s\")", name);
|
|
|
} break;
|
|
|
|