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);