]> git.sur5r.net Git - cc65/commitdiff
Use the new AddrSizeFromStr function.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 27 Aug 2009 14:19:47 +0000 (14:19 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 27 Aug 2009 14:19:47 +0000 (14:19 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4051 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ca65/scanner.c

index bc37a10b25cbfbec8cc948a23eed3b2f4e4ddf79..c8ef023eb2d70ebb0e5913356f3b750fddd306c6 100644 (file)
@@ -1373,12 +1373,7 @@ unsigned char ParseAddrSize (void)
  * error message and return ADDR_SIZE_DEFAULT.
  */
 {
-    static const char* Keys[] = {
-        "DIRECT", "ZEROPAGE", "ZP",
-        "ABSOLUTE", "ABS", "NEAR",
-        "FAR",
-        "LONG", "DWORD",
-    };
+    unsigned char AddrSize;
 
     /* Check for an identifier */
     if (Tok != TOK_IDENT) {
@@ -1386,21 +1381,15 @@ unsigned char ParseAddrSize (void)
         return ADDR_SIZE_DEFAULT;
     }
 
-    /* Search for the attribute */
-    switch (GetSubKey (Keys, sizeof (Keys) / sizeof (Keys [0]))) {
-        case 0:
-        case 1:
-        case 2: return ADDR_SIZE_ZP;
-        case 3:
-        case 4:
-        case 5: return ADDR_SIZE_ABS;
-        case 6: return ADDR_SIZE_FAR;
-        case 7:
-        case 8: return ADDR_SIZE_LONG;
-        default:
-            Error ("Address size specifier expected");
-            return ADDR_SIZE_DEFAULT;
+    /* Convert the attribute */
+    AddrSize = AddrSizeFromStr (SB_GetConstBuf (&SVal));
+    if (AddrSize == ADDR_SIZE_INVALID) {
+        Error ("Address size specifier expected");
+        AddrSize = ADDR_SIZE_DEFAULT;
     }
+
+    /* Done */
+    return AddrSize;
 }