changeset 671:e5e56d16597e

And another fix to parsing.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 16 Apr 2013 11:34:23 +0300
parents 0d37fe455b86
children 75e9af630e18
files dmeval.c
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/dmeval.c	Tue Apr 16 11:30:52 2013 +0300
+++ b/dmeval.c	Tue Apr 16 11:34:23 2013 +0300
@@ -438,7 +438,10 @@
             else if (*c == '(')
                 dm_set_mode(ev, func != NULL ? PARSE_ARGS : PARSE_SUBEXPR);
             
-            else if (strchr("+-*/<>%&|!^", *c))
+            else if (*c == '-')
+                dm_set_mode(ev, ev->prev == PARSE_START ? PARSE_OPER2 : PARSE_OPER);
+            
+            else if (strchr("+*/<>%&|!^", *c))
                 dm_set_mode(ev, PARSE_OPER);
 
             else if (isdigit(*c) || *c == '.')