Subversion Repositories pentevo

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1186 savelij 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
  eSymbolFlag_UserShort = 1 << 6,
37
  eSymbolFlag_UserMedium = 1 << 7,
38
  eSymbolFlag_UserLong = 1 << 8,
39
 
40
  eSymbolFlags_Promotable = eSymbolFlag_FirstPassUnknown | eSymbolFlag_Questionable
41
                          | eSymbolFlag_UsesForwards
42
                          | eSymbolFlag_UserShort | eSymbolFlag_UserMedium | eSymbolFlag_UserLong
43
} tSymbolFlags;
44
 
45
#ifdef __cplusplus
46
#include "cppops.h"
47
DefCPPOps_Mask(tSymbolFlags)
48
#endif
49
 
50
#define mFirstPassUnknown(Flags) (!!((Flags) & eSymbolFlag_FirstPassUnknown))
51
 
52
#define mSymbolQuestionable(Flags) (!!((Flags) & eSymbolFlag_Questionable))
53
 
54
#define mFirstPassUnknownOrQuestionable(Flags) (!!((Flags) & (eSymbolFlag_FirstPassUnknown | eSymbolFlag_Questionable)))
55
 
56
#define mUsesForwards(Flags) (!!((Flags) & eSymbolFlag_UsesForwards))
57
 
58
#endif /* _SYMFLAGS_H */