]> git.sur5r.net Git - cc65/blobdiff - src/cc65/scanner.h
In a function call for all parameters not covered by a prototype, convert
[cc65] / src / cc65 / scanner.h
index 59b00068fe57c75add067a313196b309f011b3a7..36fd880817551c961df3de233d3c4edb2ed1ed3e 100644 (file)
@@ -6,7 +6,7 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 1998-2003 Ullrich von Bassewitz                                       */
+/* (C) 1998-2004 Ullrich von Bassewitz                                       */
 /*               Römerstrasse 52                                             */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 
 
 /*****************************************************************************/
-/*                            Token definitions                             */
+/*                            Token definitions                             */
 /*****************************************************************************/
 
 
 
 typedef enum token_t {
+    TOK_INVALID,
     TOK_CEOF,
 
     TOK_AUTO,
@@ -60,12 +61,16 @@ typedef enum token_t {
     TOK_RESTRICT,
     TOK_STATIC,
     TOK_TYPEDEF,
-    TOK_CONST,
+
+    /* Tokens denoting type qualifiers */
+    TOK_FIRST_TYPEQUAL,
+    TOK_CONST           = TOK_FIRST_TYPEQUAL,
     TOK_VOLATILE,
+    TOK_LAST_TYPEQUAL   = TOK_VOLATILE,
 
     /* Tokens denoting types */
-    TOK_FIRSTTYPE,
-    TOK_ENUM           = TOK_FIRSTTYPE,
+    TOK_FIRST_TYPE,
+    TOK_ENUM           = TOK_FIRST_TYPE,
     TOK_CHAR,
     TOK_INT,
     TOK_DOUBLE,
@@ -77,7 +82,7 @@ typedef enum token_t {
     TOK_STRUCT,
     TOK_UNION,
     TOK_VOID,
-    TOK_LASTTYPE       = TOK_VOID,
+    TOK_LAST_TYPE       = TOK_VOID,
 
     /* Control statements */
     TOK_DO,
@@ -157,6 +162,7 @@ typedef enum token_t {
 
     TOK_ATTRIBUTE,
     TOK_FAR,
+    TOK_NEAR,
     TOK_FASTCALL,
     TOK_A,
     TOK_X,
@@ -197,6 +203,26 @@ extern Token NextTok;              /* The next token */
 
 
 
+#if defined(HAVE_INLINE)
+INLINE int TokIsType (const Token* T)
+/* Return true if the token is a type */
+{
+    return (T->Tok >= TOK_FIRST_TYPE && T->Tok <= TOK_LAST_TYPE);
+}
+#else
+#  define TokIsType(T)  ((T)->Tok >= TOK_FIRST_TYPE && (T)->Tok <= TOK_LAST_TYPE)
+#endif
+
+#if defined(HAVE_INLINE)
+INLINE int TokIsTypeQual (const Token* T)
+/* Return true if the token is a type qualifier */
+{
+    return (T->Tok >= TOK_FIRST_TYPEQUAL && T->Tok <= TOK_LAST_TYPEQUAL);
+}
+#else
+#  define TokIsTypeQual(T)  ((T)->Tok >= TOK_FIRST_TYPEQUAL && (T)->Tok <= TOK_LAST_TYPEQUAL)
+#endif
+
 void SymName (char* s);
 /* Get symbol from input stream */