1 #ifndef _SYMFLAGS_H 2 #define _SYMFLAGS_H 3 /* symflags.h */ 4 /*****************************************************************************/ 5 /* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only */ 6 /* */ 7 /* AS */ 8 /* */ 9 /* Symbol Flags Used in Symbol Table and TempResult */ 10 /* */ 11 /*****************************************************************************/ 12 13 typedef enum eSymbolFlags 14 { 15 eSymbolFlag_None = 0, 16 eSymbolFlag_NextLabelAfterBSR = 1 << 0, 17 eSymbolFlag_StringSingleQuoted = 1 << 1, 18 19 /* Hinweisflag: evtl. im ersten Pass unbe- 20 kanntes Symbol, Ausdruck nicht ausgewertet */ 21 22 eSymbolFlag_FirstPassUnknown = 1 << 2, 23 24 /* Hinweisflag: Dadurch, dass Phasenfehler 25 aufgetreten sind, ist dieser Symbolwert evtl. 26 nicht mehr aktuell */ 27 28 eSymbolFlag_Questionable = 1 << 3, 29 30 /* Hinweisflag: benutzt Vorwaertsdefinitionen */ 31 32 eSymbolFlag_UsesForwards = 1 << 4, 33 34 eSymbolFlags_Promotable = eSymbolFlag_FirstPassUnknown | eSymbolFlag_Questionable | eSymbolFlag_UsesForwards 35 } tSymbolFlags; 36 37 #ifdef __cplusplus 38 #include "cppops.h" 39 DefCPPOps_Mask(tSymbolFlags) 40 #endif 41 42 #define mFirstPassUnknown(Flags) (!!((Flags) & eSymbolFlag_FirstPassUnknown)) 43 44 #define mSymbolQuestionable(Flags) (!!((Flags) & eSymbolFlag_Questionable)) 45 46 #define mFirstPassUnknownOrQuestionable(Flags) (!!((Flags) & (eSymbolFlag_FirstPassUnknown | eSymbolFlag_Questionable))) 47 48 #define mUsesForwards(Flags) (!!((Flags) & eSymbolFlag_UsesForwards)) 49 50 #endif /* _SYMFLAGS_H */ 51