]> git.sur5r.net Git - cc65/blobdiff - src/ld65/scanner.h
Separate processing the linker config file into two phases: The config file is
[cc65] / src / ld65 / scanner.h
index 744abdb9a490b4dae36d05d3d0b52f9055cf871e..b27bf4ef9627b6a3ec4384612e587576e3a930df 100644 (file)
@@ -6,10 +6,10 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 1998-2000 Ullrich von Bassewitz                                       */
-/*               Wacholderweg 14                                             */
-/*               D-70597 Stuttgart                                           */
-/* EMail:        uz@musoftware.de                                            */
+/* (C) 1998-2010 Ullrich von Bassewitz                                       */
+/*               Roemerstrasse 52                                            */
+/*               D-70794 Filderstadt                                         */
+/* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
 /*                                                                           */
 /* This software is provided 'as-is', without any expressed or implied       */
 
 
 
+#include "strbuf.h"
+
+
+
 /*****************************************************************************/
 /*                                          Data                                    */
 /*****************************************************************************/
 /* Config file tokens */
 typedef enum {
     CFGTOK_NONE,
-    CFGTOK_INTCON,
-    CFGTOK_STRCON,
-    CFGTOK_IDENT,
+    CFGTOK_INTCON,              /* Integer constant */
+    CFGTOK_STRCON,              /* String constant */
+    CFGTOK_IDENT,               /* Identifier */
+    CFGTOK_PLUS,
+    CFGTOK_MINUS,
+    CFGTOK_MUL,
+    CFGTOK_DIV,
+    CFGTOK_LPAR,
+    CFGTOK_RPAR,
     CFGTOK_LCURLY,
     CFGTOK_RCURLY,
     CFGTOK_SEMI,
@@ -84,13 +94,14 @@ typedef enum {
     CFGTOK_LOAD,
     CFGTOK_RUN,
     CFGTOK_ALIGN,
+    CFGTOK_ALIGN_LOAD,
     CFGTOK_OFFSET,
+    CFGTOK_OPTIONAL,
 
     CFGTOK_RO,
     CFGTOK_RW,
     CFGTOK_BSS,
     CFGTOK_ZP,
-    CFGTOK_WPROT,
 
     CFGTOK_O65,
     CFGTOK_BIN,
@@ -104,8 +115,14 @@ typedef enum {
     CFGTOK_LUNIX,
     CFGTOK_OSA65,
     CFGTOK_CC65,
+    CFGTOK_OPENCBM,
 
     CFGTOK_CONDES,
+    CFGTOK_STARTADDRESS,
+
+    CFGTOK_VALUE,
+    CFGTOK_WEAK,
+
     CFGTOK_SEGMENT,
     CFGTOK_LABEL,
     CFGTOK_COUNT,
@@ -113,9 +130,12 @@ typedef enum {
 
     CFGTOK_CONSTRUCTOR,
     CFGTOK_DESTRUCTOR,
+    CFGTOK_INTERRUPTOR,
 
     CFGTOK_DECREASING,
-    CFGTOK_INCREASING
+    CFGTOK_INCREASING,
+
+    CFGTOK_DEFAULT
 
 } cfgtok_t;
 
@@ -132,9 +152,8 @@ struct IdentTok {
 
 
 /* Current token and attributes */
-#define CFG_MAX_IDENT_LEN  255
 extern cfgtok_t                CfgTok;
-extern char                    CfgSVal [CFG_MAX_IDENT_LEN+1];
+extern StrBuf           CfgSVal;
 extern unsigned long   CfgIVal;
 
 /* Error location */