]> git.sur5r.net Git - cc65/blobdiff - src/cc65/scanner.c
Changed most "backticks" (grave accents) into apostrophes.
[cc65] / src / cc65 / scanner.c
index 16d43e2eae30df2e365f1ebfd2ed8e9151630cba..695085e9418dfd47e20533d1e8527924c5f294c3 100644 (file)
@@ -267,6 +267,7 @@ static int ParseChar (void)
 {
     int C;
     int HadError;
+    int Count;
 
     /* Check for escape chars */
     if (CurC == '\\') {
@@ -336,31 +337,18 @@ static int ParseChar (void)
             case '6':
             case '7':
                 /* Octal constant */
-                HadError = 0;
+                Count = 1;
                 C = HexVal (CurC);
-                while (IsODigit (NextC)) {
-                    if ((C << 3) >= 256) {
-                        if (!HadError) {
-                            Error ("Octal character constant out of range");
-                            HadError = 1;
-                        }
-                    } else {
-                        C = (C << 3) | HexVal (NextC);
-                    }
+                while (IsODigit (NextC) && Count++ < 3) {
+                    C = (C << 3) | HexVal (NextC);
                     NextChar ();
                 }
+                if (C >= 256)
+                    Error ("Octal character constant out of range");
                 break;
             default:
-                Error ("Illegal character constant");
-                C = ' ';
-                /* Try to do error recovery, otherwise the compiler will spit
-                ** out thousands of errors in this place and abort.
-                */
-                if (CurC != '\'' && CurC != '\0') {
-                    while (NextC != '\'' && NextC != '\"' && NextC != '\0') {
-                        NextChar ();
-                    }
-                }
+                C = CurC;
+                Error ("Illegal escaped character: 0x%02X", CurC);
                 break;
         }
     } else {
@@ -389,7 +377,7 @@ static void CharConst (void)
 
     /* Check for closing quote */
     if (CurC != '\'') {
-        Error ("`\'' expected");
+        Error ("'\'' expected");
     } else {
         /* Skip the quote */
         NextChar ();
@@ -1056,7 +1044,7 @@ int Consume (token_t Token, const char* ErrorMsg)
 int ConsumeColon (void)
 /* Check for a colon and skip it. */
 {
-    return Consume (TOK_COLON, "`:' expected");
+    return Consume (TOK_COLON, "':' expected");
 }
 
 
@@ -1069,7 +1057,7 @@ int ConsumeSemi (void)
         NextToken ();
         return 1;
     } else {
-        Error ("`;' expected");
+        Error ("';' expected");
         if (CurTok.Tok == TOK_COLON || CurTok.Tok == TOK_COMMA) {
             NextToken ();
         }
@@ -1087,7 +1075,7 @@ int ConsumeComma (void)
         NextToken ();
         return 1;
     } else {
-        Error ("`,' expected");
+        Error ("',' expected");
         if (CurTok.Tok == TOK_SEMI) {
             NextToken ();
         }
@@ -1100,7 +1088,7 @@ int ConsumeComma (void)
 int ConsumeLParen (void)
 /* Check for a left parenthesis and skip it */
 {
-    return Consume (TOK_LPAREN, "`(' expected");
+    return Consume (TOK_LPAREN, "'(' expected");
 }
 
 
@@ -1108,7 +1096,7 @@ int ConsumeLParen (void)
 int ConsumeRParen (void)
 /* Check for a right parenthesis and skip it */
 {
-    return Consume (TOK_RPAREN, "`)' expected");
+    return Consume (TOK_RPAREN, "')' expected");
 }
 
 
@@ -1116,7 +1104,7 @@ int ConsumeRParen (void)
 int ConsumeLBrack (void)
 /* Check for a left bracket and skip it */
 {
-    return Consume (TOK_LBRACK, "`[' expected");
+    return Consume (TOK_LBRACK, "'[' expected");
 }
 
 
@@ -1124,7 +1112,7 @@ int ConsumeLBrack (void)
 int ConsumeRBrack (void)
 /* Check for a right bracket and skip it */
 {
-    return Consume (TOK_RBRACK, "`]' expected");
+    return Consume (TOK_RBRACK, "']' expected");
 }
 
 
@@ -1132,7 +1120,7 @@ int ConsumeRBrack (void)
 int ConsumeLCurly (void)
 /* Check for a left curly brace and skip it */
 {
-    return Consume (TOK_LCURLY, "`{' expected");
+    return Consume (TOK_LCURLY, "'{' expected");
 }
 
 
@@ -1140,5 +1128,5 @@ int ConsumeLCurly (void)
 int ConsumeRCurly (void)
 /* Check for a right curly brace and skip it */
 {
-    return Consume (TOK_RCURLY, "`}' expected");
+    return Consume (TOK_RCURLY, "'}' expected");
 }