]> git.sur5r.net Git - cc65/blobdiff - src/ld65/scanner.c
Removed (pretty inconsistently used) tab chars from source code base.
[cc65] / src / ld65 / scanner.c
index b60381fb6cb6544ed4bdab5c137046c13fb782ad..b6d45354a7c8b9138d4d05207dd50224c800d4e9 100644 (file)
@@ -1,8 +1,8 @@
 /*****************************************************************************/
 /*                                                                           */
-/*                                scanner.c                                 */
+/*                                 scanner.c                                 */
 /*                                                                           */
-/*             Configuration file scanner for the ld65 linker               */
+/*              Configuration file scanner for the ld65 linker               */
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
 
 
 /*****************************************************************************/
-/*                                          Data                                    */
+/*                                   Data                                    */
 /*****************************************************************************/
 
 
 
 /* Current token and attributes */
-cfgtok_t       CfgTok;
+cfgtok_t        CfgTok;
 StrBuf          CfgSVal = STATIC_STRBUF_INITIALIZER;
 unsigned long   CfgIVal;
 
@@ -67,17 +67,17 @@ unsigned long   CfgIVal;
 FilePos                 CfgErrorPos;
 
 /* Input source for the configuration */
-static const char*             CfgName         = 0;
+static const char*      CfgName         = 0;
 
 /* Other input stuff */
-static int                     C               = ' ';
+static int              C               = ' ';
 static FilePos          InputPos;
-static FILE*                   InputFile       = 0;
+static FILE*            InputFile       = 0;
 
 
 
 /*****************************************************************************/
-/*                             Error handling                               */
+/*                              Error handling                               */
 /*****************************************************************************/
 
 
@@ -117,7 +117,7 @@ void CfgError (const FilePos* Pos, const char* Format, ...)
 
 
 /*****************************************************************************/
-/*                                          Code                                    */
+/*                                   Code                                    */
 /*****************************************************************************/
 
 
@@ -130,13 +130,13 @@ static void NextChar (void)
 
     /* Count columns */
     if (C != EOF) {
-       ++InputPos.Col;
+        ++InputPos.Col;
     }
 
     /* Count lines */
     if (C == '\n') {
-       ++InputPos.Line;
-       InputPos.Col = 0;
+        ++InputPos.Line;
+        InputPos.Col = 0;
     }
 }
 
@@ -146,9 +146,9 @@ static unsigned DigitVal (int C)
 /* Return the value for a numeric digit */
 {
     if (isdigit (C)) {
-       return C - '0';
+        return C - '0';
     } else {
-       return toupper (C) - 'A' + 10;
+        return toupper (C) - 'A' + 10;
     }
 }
 
@@ -228,7 +228,7 @@ void CfgNextTok (void)
 Again:
     /* Skip whitespace */
     while (isspace (C)) {
-       NextChar ();
+        NextChar ();
     }
 
     /* Remember the current position */
@@ -237,41 +237,41 @@ Again:
     /* Identifier? */
     if (C == '_' || IsAlpha (C)) {
 
-       /* Read the identifier */
-       SB_Clear (&CfgSVal);
-       while (C == '_' || IsAlNum (C)) {
+        /* Read the identifier */
+        SB_Clear (&CfgSVal);
+        while (C == '_' || IsAlNum (C)) {
             SB_AppendChar (&CfgSVal, C);
-           NextChar ();
-       }
-               SB_Terminate (&CfgSVal);
-       CfgTok = CFGTOK_IDENT;
-       return;
+            NextChar ();
+        }
+        SB_Terminate (&CfgSVal);
+        CfgTok = CFGTOK_IDENT;
+        return;
     }
 
     /* Hex number? */
     if (C == '$') {
-       NextChar ();
-       if (!isxdigit (C)) {
-           CfgError (&CfgErrorPos, "Hex digit expected");
-       }
-       CfgIVal = 0;
-       while (isxdigit (C)) {
-                   CfgIVal = CfgIVal * 16 + DigitVal (C);
-           NextChar ();
-       }
-       CfgTok = CFGTOK_INTCON;
-       return;
+        NextChar ();
+        if (!isxdigit (C)) {
+            CfgError (&CfgErrorPos, "Hex digit expected");
+        }
+        CfgIVal = 0;
+        while (isxdigit (C)) {
+            CfgIVal = CfgIVal * 16 + DigitVal (C);
+            NextChar ();
+        }
+        CfgTok = CFGTOK_INTCON;
+        return;
     }
 
     /* Decimal number? */
     if (isdigit (C)) {
-       CfgIVal = 0;
-       while (isdigit (C)) {
-                   CfgIVal = CfgIVal * 10 + DigitVal (C);
-           NextChar ();
-       }
-       CfgTok = CFGTOK_INTCON;
-       return;
+        CfgIVal = 0;
+        while (isdigit (C)) {
+            CfgIVal = CfgIVal * 10 + DigitVal (C);
+            NextChar ();
+        }
+        CfgTok = CFGTOK_INTCON;
+        return;
     }
 
     /* Other characters */
@@ -297,99 +297,99 @@ Again:
             CfgTok = CFGTOK_DIV;
             break;
 
-       case '(':
-           NextChar ();
-           CfgTok = CFGTOK_LPAR;
-           break;
-
-       case ')':
-           NextChar ();
-           CfgTok = CFGTOK_RPAR;
-           break;
-
-       case '{':
-           NextChar ();
-           CfgTok = CFGTOK_LCURLY;
-           break;
-
-       case '}':
-           NextChar ();
-           CfgTok = CFGTOK_RCURLY;
-           break;
-
-       case ';':
-           NextChar ();
-           CfgTok = CFGTOK_SEMI;
-           break;
-
-       case '.':
-           NextChar ();
-           CfgTok = CFGTOK_DOT;
-           break;
-
-       case ',':
-           NextChar ();
-           CfgTok = CFGTOK_COMMA;
-           break;
-
-       case '=':
-           NextChar ();
-           CfgTok = CFGTOK_EQ;
-           break;
+        case '(':
+            NextChar ();
+            CfgTok = CFGTOK_LPAR;
+            break;
+
+        case ')':
+            NextChar ();
+            CfgTok = CFGTOK_RPAR;
+            break;
+
+        case '{':
+            NextChar ();
+            CfgTok = CFGTOK_LCURLY;
+            break;
+
+        case '}':
+            NextChar ();
+            CfgTok = CFGTOK_RCURLY;
+            break;
+
+        case ';':
+            NextChar ();
+            CfgTok = CFGTOK_SEMI;
+            break;
+
+        case '.':
+            NextChar ();
+            CfgTok = CFGTOK_DOT;
+            break;
+
+        case ',':
+            NextChar ();
+            CfgTok = CFGTOK_COMMA;
+            break;
+
+        case '=':
+            NextChar ();
+            CfgTok = CFGTOK_EQ;
+            break;
 
         case ':':
-           NextChar ();
-           CfgTok = CFGTOK_COLON;
-           break;
+            NextChar ();
+            CfgTok = CFGTOK_COLON;
+            break;
 
         case '\"':
             StrVal ();
-           break;
+            break;
 
         case '#':
-           /* Comment */
-           while (C != '\n' && C != EOF) {
-               NextChar ();
-           }
-           if (C != EOF) {
-               goto Again;
-           }
-           CfgTok = CFGTOK_EOF;
-           break;
+            /* Comment */
+            while (C != '\n' && C != EOF) {
+                NextChar ();
+            }
+            if (C != EOF) {
+                goto Again;
+            }
+            CfgTok = CFGTOK_EOF;
+            break;
 
         case '%':
-           NextChar ();
-           switch (C) {
+            NextChar ();
+            switch (C) {
 
-               case 'O':
-                   NextChar ();
-                   if (OutputName) {
+                case 'O':
+                    NextChar ();
+                    if (OutputName) {
                         SB_CopyStr (&CfgSVal, OutputName);
-                   } else {
-                       SB_Clear (&CfgSVal);
-                   }
+                    } else {
+                        SB_Clear (&CfgSVal);
+                    }
                     SB_Terminate (&CfgSVal);
                     OutputNameUsed = 1;
-                   CfgTok = CFGTOK_STRCON;
-                   break;
-
-               case 'S':
-                   NextChar ();
-                   CfgIVal = StartAddr;
-                   CfgTok = CFGTOK_INTCON;
-                   break;
-
-               default:
-                   CfgError (&CfgErrorPos, "Invalid format specification");
-           }
-           break;
+                    CfgTok = CFGTOK_STRCON;
+                    break;
+
+                case 'S':
+                    NextChar ();
+                    CfgIVal = StartAddr;
+                    CfgTok = CFGTOK_INTCON;
+                    break;
+
+                default:
+                    CfgError (&CfgErrorPos, "Invalid format specification");
+            }
+            break;
 
         case EOF:
-           CfgTok = CFGTOK_EOF;
-           break;
+            CfgTok = CFGTOK_EOF;
+            break;
 
-       default:
-           CfgError (&CfgErrorPos, "Invalid character `%c'", C);
+        default:
+            CfgError (&CfgErrorPos, "Invalid character `%c'", C);
 
     }
 }
@@ -400,7 +400,7 @@ void CfgConsume (cfgtok_t T, const char* Msg)
 /* Skip a token, print an error message if not found */
 {
     if (CfgTok != T) {
-               CfgError (&CfgErrorPos, "%s", Msg);
+        CfgError (&CfgErrorPos, "%s", Msg);
     }
     CfgNextTok ();
 }
@@ -427,7 +427,7 @@ void CfgOptionalComma (void)
 /* Consume a comma if there is one */
 {
     if (CfgTok == CFGTOK_COMMA) {
-               CfgNextTok ();
+        CfgNextTok ();
     }
 }
 
@@ -437,7 +437,7 @@ void CfgOptionalAssign (void)
 /* Consume an equal sign if there is one */
 {
     if (CfgTok == CFGTOK_EQ) {
-               CfgNextTok ();
+        CfgNextTok ();
     }
 }
 
@@ -447,7 +447,7 @@ void CfgAssureInt (void)
 /* Make sure the next token is an integer */
 {
     if (CfgTok != CFGTOK_INTCON) {
-               CfgError (&CfgErrorPos, "Integer constant expected");
+        CfgError (&CfgErrorPos, "Integer constant expected");
     }
 }
 
@@ -457,7 +457,7 @@ void CfgAssureStr (void)
 /* Make sure the next token is a string constant */
 {
     if (CfgTok != CFGTOK_STRCON) {
-               CfgError (&CfgErrorPos, "String constant expected");
+        CfgError (&CfgErrorPos, "String constant expected");
     }
 }
 
@@ -467,7 +467,7 @@ void CfgAssureIdent (void)
 /* Make sure the next token is an identifier */
 {
     if (CfgTok != CFGTOK_IDENT) {
-               CfgError (&CfgErrorPos, "Identifier expected");
+        CfgError (&CfgErrorPos, "Identifier expected");
     }
 }
 
@@ -477,7 +477,7 @@ void CfgRangeCheck (unsigned long Lo, unsigned long Hi)
 /* Check the range of CfgIVal */
 {
     if (CfgIVal < Lo || CfgIVal > Hi) {
-       CfgError (&CfgErrorPos, "Range error");
+        CfgError (&CfgErrorPos, "Range error");
     }
 }
 
@@ -491,16 +491,16 @@ void CfgSpecialToken (const IdentTok* Table, unsigned Size, const char* Name)
     /* We need an identifier */
     if (CfgTok == CFGTOK_IDENT) {
 
-       /* Make it upper case */
+        /* Make it upper case */
         SB_ToUpper (&CfgSVal);
 
-               /* Linear search */
-       for (I = 0; I < Size; ++I) {
-                   if (SB_CompareStr (&CfgSVal, Table[I].Ident) == 0) {
-               CfgTok = Table[I].Tok;
-               return;
-           }
-       }
+        /* Linear search */
+        for (I = 0; I < Size; ++I) {
+            if (SB_CompareStr (&CfgSVal, Table[I].Ident) == 0) {
+                CfgTok = Table[I].Tok;
+                return;
+            }
+        }
 
     }
 
@@ -514,21 +514,21 @@ void CfgBoolToken (void)
 /* Map an identifier or integer to a boolean token */
 {
     static const IdentTok Booleans [] = {
-               {   "YES",      CFGTOK_TRUE     },
-       {   "NO",       CFGTOK_FALSE    },
+        {   "YES",      CFGTOK_TRUE     },
+        {   "NO",       CFGTOK_FALSE    },
         {   "TRUE",     CFGTOK_TRUE     },
         {   "FALSE",    CFGTOK_FALSE    },
     };
 
     /* If we have an identifier, map it to a boolean token */
     if (CfgTok == CFGTOK_IDENT) {
-       CfgSpecialToken (Booleans, ENTRY_COUNT (Booleans), "Boolean");
+        CfgSpecialToken (Booleans, ENTRY_COUNT (Booleans), "Boolean");
     } else {
-       /* We expected an integer here */
-       if (CfgTok != CFGTOK_INTCON) {
-           CfgError (&CfgErrorPos, "Boolean value expected");
-       }
-       CfgTok = (CfgIVal == 0)? CFGTOK_FALSE : CFGTOK_TRUE;
+        /* We expected an integer here */
+        if (CfgTok != CFGTOK_INTCON) {
+            CfgError (&CfgErrorPos, "Boolean value expected");
+        }
+        CfgTok = (CfgIVal == 0)? CFGTOK_FALSE : CFGTOK_TRUE;
     }
 }
 
@@ -577,7 +577,7 @@ void CfgCloseInput (void)
     /* Close the input file if we had one */
     if (InputFile) {
         (void) fclose (InputFile);
-       InputFile = 0;
+        InputFile = 0;
     }
 }