]> git.sur5r.net Git - cc65/blobdiff - src/ca65/symtab.h
Remember where each symbol was defined and where it was referenced. Write this
[cc65] / src / ca65 / symtab.h
index 96873e061bad1ab63844a4a1606a4b0741ea4a95..ea7e66515c7bed5e036b9b522ee3b74c3671d77d 100644 (file)
@@ -45,7 +45,6 @@
 #include "inline.h"
 
 /* ca65 */
-#include "segrange.h"
 #include "symentry.h"
 
 
 #define ST_NONE         0x00            /* No flags */
 #define ST_DEFINED      0x01            /* Scope has been defined */
 
-/* Symbol table types */
-enum {
-    ST_GLOBAL,                          /* Root level */
-    ST_PROC,                            /* .PROC */
-    ST_SCOPE,                           /* .SCOPE */
-    ST_SCOPE_HAS_DATA = ST_SCOPE,       /* Last scope that contains data */
-    ST_STRUCT,                          /* .STRUCT/.UNION */
-    ST_ENUM,                            /* .ENUM */
-    ST_UNDEF    = 0xFF
-};
-
 /* A symbol table */
 typedef struct SymTable SymTable;
 struct SymTable {
@@ -79,8 +67,8 @@ struct SymTable {
     SymTable*           Right;          /* Pointer to greater entry */
     SymTable*                  Parent;         /* Link to enclosing scope if any */
     SymTable*           Childs;         /* Pointer to child scopes */
-    SymEntry*           OwnerSym;       /* Symbol that "owns" the scope */
-    Collection          SegRanges;      /* Segment ranges for this scope */
+    SymEntry*           Label;          /* Scope label */
+    Collection          Spans;          /* Spans for this scope */
     unsigned            Id;             /* Scope id */
     unsigned short      Flags;          /* Symbol table flags */
     unsigned char      AddrSize;       /* Address size */
@@ -148,9 +136,6 @@ INLINE unsigned char GetSymTabType (const SymTable* S)
 #  define GetSymTabType(S)      ((S)->Type)
 #endif
 
-unsigned char GetCurrentSymTabType ();
-/* Return the type of the current symbol table */
-
 void SymCheck (void);
 /* Run through all symbols and check for anomalies and errors */