]> git.sur5r.net Git - cc65/blobdiff - src/common/exprdefs.c
Only for jumps, the lib uses named asm labels in branches
[cc65] / src / common / exprdefs.c
index 9c959f32e6fec067a2473947995756d5a618b9f9..d9a5adf6be1ac9858f555da2084cb8219bf7815f 100644 (file)
@@ -1,15 +1,15 @@
 /*****************************************************************************/
 /*                                                                           */
-/*                                       exprdefs.c                                 */
+/*                                exprdefs.c                                 */
 /*                                                                           */
-/*                       Expression tree definitions                        */
+/*                        Expression tree definitions                        */
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 1998-2003 Ullrich von Bassewitz                                       */
-/*               Römerstraße 52                                              */
-/*               D-70794 Filderstadt                                         */
-/* EMail:        uz@cc65.org                                                 */
+/* (C) 1998-2012, Ullrich von Bassewitz                                      */
+/*                Roemerstrasse 52                                           */
+/*                D-70794 Filderstadt                                        */
+/* EMail:         uz@cc65.org                                                */
 /*                                                                           */
 /*                                                                           */
 /* This software is provided 'as-is', without any expressed or implied       */
@@ -41,7 +41,7 @@
 
 
 /*****************************************************************************/
-/*                                          Code                                    */
+/*                                   Code                                    */
 /*****************************************************************************/
 
 
@@ -50,152 +50,176 @@ static void InternalDumpExpr (const ExprNode* Expr, const ExprNode* (*ResolveSym
 /* Dump an expression in RPN to stdout */
 {
     if (Expr == 0) {
-       return;
+        return;
     }
     InternalDumpExpr (Expr->Left, ResolveSym);
     InternalDumpExpr (Expr->Right, ResolveSym);
 
     switch (Expr->Op) {
 
-       case EXPR_LITERAL:
-       case EXPR_ULABEL:
-                   printf (" $%04lX", Expr->V.Val);
-           break;
+        case EXPR_LITERAL:
+        case EXPR_ULABEL:
+            printf (" $%04lX", Expr->V.IVal);
+            break;
 
-       case EXPR_SYMBOL:
+        case EXPR_SYMBOL:
             printf (" SYM(");
             if (ResolveSym && (Expr = ResolveSym (Expr->V.Sym)) != 0) {
                 InternalDumpExpr (Expr, ResolveSym);
             }
             printf (") ");
-           break;
+            break;
 
-       case EXPR_SECTION:
-           printf (" SEC");
-           break;
+        case EXPR_SECTION:
+            printf (" SEC");
+            break;
 
-       case EXPR_SEGMENT:
-           printf (" SEG");
-           break;
+        case EXPR_SEGMENT:
+            printf (" SEG");
+            break;
 
-               case EXPR_PLUS:
-           printf (" +");
-           break;
+        case EXPR_MEMAREA:
+            printf (" MEM");
+            break;
 
-               case EXPR_MINUS:
-           printf (" -");
-           break;
+        case EXPR_PLUS:
+            printf (" +");
+            break;
 
-               case EXPR_MUL:
-           printf (" *");
-           break;
+        case EXPR_MINUS:
+            printf (" -");
+            break;
 
-               case EXPR_DIV:
-           printf (" /");
-           break;
+        case EXPR_MUL:
+            printf (" *");
+            break;
 
-               case EXPR_MOD:
-           printf (" MOD");
-           break;
+        case EXPR_DIV:
+            printf (" /");
+            break;
 
-       case EXPR_OR:
-           printf (" OR");
-           break;
+        case EXPR_MOD:
+            printf (" MOD");
+            break;
 
-       case EXPR_XOR:
-           printf (" XOR");
-           break;
+        case EXPR_OR:
+            printf (" OR");
+            break;
 
-       case EXPR_AND:
-           printf (" AND");
-           break;
+        case EXPR_XOR:
+            printf (" XOR");
+            break;
 
-       case EXPR_SHL:
-           printf (" SHL");
-           break;
+        case EXPR_AND:
+            printf (" AND");
+            break;
 
-       case EXPR_SHR:
-           printf (" SHR");
-           break;
+        case EXPR_SHL:
+            printf (" SHL");
+            break;
 
-               case EXPR_EQ:
-           printf (" =");
-           break;
+        case EXPR_SHR:
+            printf (" SHR");
+            break;
 
-               case EXPR_NE:
-           printf ("<>");
-           break;
+        case EXPR_EQ:
+            printf (" =");
+            break;
 
-               case EXPR_LT:
-           printf (" <");
-           break;
+        case EXPR_NE:
+            printf ("<>");
+            break;
 
-               case EXPR_GT:
-           printf (" >");
-           break;
+        case EXPR_LT:
+            printf (" <");
+            break;
 
-               case EXPR_LE:
-           printf (" <=");
-           break;
+        case EXPR_GT:
+            printf (" >");
+            break;
 
-               case EXPR_GE:
-           printf (" >=");
-           break;
+        case EXPR_LE:
+            printf (" <=");
+            break;
 
-       case EXPR_BOOLAND:
-           printf (" BOOL_AND");
-           break;
+        case EXPR_GE:
+            printf (" >=");
+            break;
 
-       case EXPR_BOOLOR:
-           printf (" BOOL_OR");
-           break;
+        case EXPR_BOOLAND:
+            printf (" BOOL_AND");
+            break;
 
-       case EXPR_BOOLXOR:
-           printf (" BOOL_XOR");
-           break;
+        case EXPR_BOOLOR:
+            printf (" BOOL_OR");
+            break;
 
-               case EXPR_UNARY_MINUS:
-           printf (" NEG");
-           break;
+        case EXPR_BOOLXOR:
+            printf (" BOOL_XOR");
+            break;
 
-               case EXPR_NOT:
-           printf (" ~");
-           break;
+        case EXPR_MAX:
+            printf (" MAX");
+            break;
 
-               case EXPR_SWAP:
-           printf (" SWAP");
-           break;
+        case EXPR_MIN:
+            printf (" MIN");
+            break;
 
-       case EXPR_BOOLNOT:
-           printf (" BOOL_NOT");
-           break;
+        case EXPR_UNARY_MINUS:
+            printf (" NEG");
+            break;
 
-               case EXPR_BYTE0:
-           printf (" BYTE0");
-           break;
+        case EXPR_NOT:
+            printf (" ~");
+            break;
 
-               case EXPR_BYTE1:
-           printf (" BYTE1");
-           break;
+        case EXPR_SWAP:
+            printf (" SWAP");
+            break;
 
-               case EXPR_BYTE2:
-           printf (" BYTE2");
-           break;
+        case EXPR_BOOLNOT:
+            printf (" BOOL_NOT");
+            break;
 
-               case EXPR_BYTE3:
-           printf (" BYTE3");
-           break;
+        case EXPR_BANK:
+            printf (" BANK");
+            break;
 
-               case EXPR_WORD0:
-           printf (" WORD0");
-           break;
+        case EXPR_BYTE0:
+            printf (" BYTE0");
+            break;
 
-               case EXPR_WORD1:
-           printf (" WORD1");
-           break;
+        case EXPR_BYTE1:
+            printf (" BYTE1");
+            break;
+
+        case EXPR_BYTE2:
+            printf (" BYTE2");
+            break;
+
+        case EXPR_BYTE3:
+            printf (" BYTE3");
+            break;
+
+        case EXPR_WORD0:
+            printf (" WORD0");
+            break;
+
+        case EXPR_WORD1:
+            printf (" WORD1");
+            break;
+
+        case EXPR_FARADDR:
+            printf (" FARADDR");
+            break;
+
+        case EXPR_DWORD:
+            printf (" DWORD");
+            break;
 
         default:
-                   AbEnd ("Unknown Op type: %u", Expr->Op);
+            AbEnd ("Unknown Op type: %u", Expr->Op);
 
     }
 }
@@ -208,6 +232,3 @@ void DumpExpr (const ExprNode* Expr, const ExprNode* (*ResolveSym) (const struct
     InternalDumpExpr (Expr, ResolveSym);
     printf ("\n");
 }
-
-
-