DEADSOFTWARE

Унарный минус работает как описанов в Дубовых требованиях
[dsw-obn.git] / src / oberon.c
index 8b94271a6033d4675f4c8026d316980139a85d18..830844a16aedb87eb17d805361346d80930d0e3a 100644 (file)
@@ -1958,11 +1958,6 @@ oberon_simple_expr(oberon_context_t * ctx)
 
        expr = oberon_term_expr(ctx);
 
-       if(minus)
-       {
-               expr = oberon_make_unary_op(ctx, MINUS, expr);
-       }
-
        while(ISADDOP(ctx -> token))
        {
                int token = ctx -> token;
@@ -1972,6 +1967,11 @@ oberon_simple_expr(oberon_context_t * ctx)
                expr = oberon_make_bin_op(ctx, token, expr, inter);
        }
 
+       if(minus)
+       {
+               expr = oberon_make_unary_op(ctx, MINUS, expr);
+       }
+
        return expr;
 }