Mercurial > hg > dmlib
changeset 676:030b2a8e04d5
Improve parsing.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 16 Apr 2013 15:04:40 +0300 |
parents | 704f56f31e15 |
children | 4b7cccaa62c0 |
files | dmeval.c |
diffstat | 1 files changed, 8 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/dmeval.c Tue Apr 16 15:04:02 2013 +0300 +++ b/dmeval.c Tue Apr 16 15:04:40 2013 +0300 @@ -549,10 +549,15 @@ if (op != OP_NONE) { - if (ev->mode == PARSE_OPER2 && op != OP_SUB) - dm_set_mode(ev, PARSE_ERROR); + if (ev->mode == PARSE_OPER2 && op == OP_SUB && + (node = dm_eval_add_node(list, op)) != NULL) + { + ev->expect = PARSE_NORMAL; + dm_set_mode(ev, PARSE_START); + } else - if ((node = dm_eval_add_node(list, op)) != NULL) + if (ev->mode == PARSE_OPER && + (node = dm_eval_add_node(list, op)) != NULL) { ev->expect = PARSE_NORMAL | PARSE_OPER2; dm_set_mode(ev, PARSE_START);