Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  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.   eSymbolFlag_Label = 1 << 5,
  35.  
  36.   eSymbolFlags_Promotable = eSymbolFlag_FirstPassUnknown | eSymbolFlag_Questionable | eSymbolFlag_UsesForwards
  37. } tSymbolFlags;
  38.  
  39. #ifdef __cplusplus
  40. #include "cppops.h"
  41. DefCPPOps_Mask(tSymbolFlags)
  42. #endif
  43.  
  44. #define mFirstPassUnknown(Flags) (!!((Flags) & eSymbolFlag_FirstPassUnknown))
  45.  
  46. #define mSymbolQuestionable(Flags) (!!((Flags) & eSymbolFlag_Questionable))
  47.  
  48. #define mFirstPassUnknownOrQuestionable(Flags) (!!((Flags) & (eSymbolFlag_FirstPassUnknown | eSymbolFlag_Questionable)))
  49.  
  50. #define mUsesForwards(Flags) (!!((Flags) & eSymbolFlag_UsesForwards))
  51.  
  52. #endif /* _SYMFLAGS_H */
  53.