]> Shamusworld >> Repos - rmac/blobdiff - rmac.c
Added "-4" switch that enables C style operator precedence (original work by Bastian...
[rmac] / rmac.c
diff --git a/rmac.c b/rmac.c
index 9259d4196aef9b14edf026614d26d38ee0bfeaec..5946105b03b0b68989ec8a19a2979a76aa6071db 100644 (file)
--- a/rmac.c
+++ b/rmac.c
@@ -60,6 +60,7 @@ int activecpu = CPU_68000;            // Active 68k CPU (68000 by default)
 int activefpu = FPU_NONE;              // Active FPU (none by default)
 int org68k_active = 0;                 // .org switch for 68k (only with RAW output format)
 uint32_t org68k_address;               // .org for 68k
+int correctMathRules;                  // 1, use C operator precedence in expressions
 
 //
 // Convert a string to uppercase
@@ -206,6 +207,7 @@ void DisplayHelp(void)
                "  -v                Set verbose mode\n"
                "  -x                Turn on debugging mode\n"
                "  -y[pagelen]       Set page line length (default: 61)\n"
+               "  -4                Use C style operator precedence\n"
                "\n", cmdlnexec);
 }
 
@@ -334,7 +336,7 @@ int Process(int argc, char ** argv)
        regtab = reg68tab;                              // Idem
        regcheck = reg68check;                  // Idem
        regaccept = reg68accept;                // Idem
-
+    correctMathRules = 0;                      // respect operator precedence
        // Initialize modules
        InitSymbolTable();                              // Symbol table
        InitTokenizer();                                // Tokenizer
@@ -353,6 +355,9 @@ int Process(int argc, char ** argv)
                {
                        switch (argv[argno][1])
                        {
+                       case '4':
+                               correctMathRules = 1;
+                               break;
                        case 'd':                               // Define symbol
                        case 'D':
                                for(s=argv[argno]+2; *s!=EOS;)