]> git.sur5r.net Git - cc65/blobdiff - src/cc65/symtab.h
Reverted part of change 4108 that prevented an optimization step to find
[cc65] / src / cc65 / symtab.h
index 317d8f8b808682958e27c5418190da679cb55fdd..18c8ce141115971d91bcde96429f77ec8f277868 100644 (file)
@@ -6,10 +6,10 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 2000     Ullrich von Bassewitz                                        */
-/*              Wacholderweg 14                                              */
-/*              D-70597 Stuttgart                                            */
-/* EMail:       uz@musoftware.de                                             */
+/* (C) 2000-2009, Ullrich von Bassewitz                                      */
+/*                Roemerstrasse 52                                           */
+/*                D-70794 Filderstadt                                        */
+/* EMail:         uz@cc65.org                                                */
 /*                                                                           */
 /*                                                                           */
 /* This software is provided 'as-is', without any expressed or implied       */
@@ -68,6 +68,10 @@ extern SymTable              EmptySymTab;
 /* Forwards */
 struct FuncDesc;
 
+/* Predefined lexical levels */
+#define LEX_LEVEL_GLOBAL       1U
+#define LEX_LEVEL_FUNCTION      2U
+
 
 
 /*****************************************************************************/
@@ -76,6 +80,9 @@ struct FuncDesc;
 
 
 
+unsigned GetLexicalLevel (void);
+/* Return the current lexical level */
+
 void EnterGlobalLevel (void);
 /* Enter the program global lexical level */
 
@@ -126,7 +133,7 @@ SymEntry* FindLocalSym (const char* Name);
 SymEntry* FindTagSym (const char* Name);
 /* Find the symbol with the given name in the tag table */
 
-SymEntry* FindStructField (const type* TypeArray, const char* Name);
+SymEntry* FindStructField (const Type* TypeArray, const char* Name);
 /* Find a struct field in the fields list */
 
 
@@ -140,16 +147,19 @@ SymEntry* FindStructField (const type* TypeArray, const char* Name);
 SymEntry* AddStructSym (const char* Name, unsigned Size, SymTable* Tab);
 /* Add a struct/union entry and return it */
 
-SymEntry* AddConstSym (const char* Name, const type* Type, unsigned Flags, long Val);
+SymEntry* AddBitField (const char* Name, unsigned Offs, unsigned BitOffs, unsigned Width);
+/* Add a bit field to the local symbol table and return the symbol entry */
+
+SymEntry* AddConstSym (const char* Name, const Type* T, unsigned Flags, long Val);
 /* Add an constant symbol to the symbol table and return it */
 
 SymEntry* AddLabelSym (const char* Name, unsigned Flags);
 /* Add a goto label to the symbol table */
 
-SymEntry* AddLocalSym (const char* Name, const type* Type, unsigned Flags, int Offs);
+SymEntry* AddLocalSym (const char* Name, const Type* T, unsigned Flags, int Offs);
 /* Add a local symbol and return the symbol entry */
 
-SymEntry* AddGlobalSym (const char* Name, const type* Type, unsigned Flags);
+SymEntry* AddGlobalSym (const char* Name, const Type* T, unsigned Flags);
 /* Add an external or global symbol to the symbol table and return the entry */