cexpr.h
Go to the documentation of this file.
1 /*--------------------------------------------------------------------------------------+
2 |
3 | Supplied under applicable software license agreement.
4 |
5 | Copyright (c) 2018 Bentley Systems, Incorporated. All rights reserved.
6 |
7 +---------------------------------------------------------------------------------------*/
8 #pragma once
9 
10 #include <Mstn\basetype.h>
13 
14 /* .h File Dependencies */
15 
16 /*----------------------------------------------------------------------+
17 | |
18 | Defines |
19 | |
20 +----------------------------------------------------------------------*/
21 
22 /*----------------------------------------------------------------------------------*/
34 typedef enum
35  {
49 
50 
51 /*----------------------------------------------------------------------------------*/
61 typedef enum
62  {
71 #if !defined (VISIBILITY_DBASE_HOOK)
72 
74 #endif
76 
77 
78 /*----------------------------------------------------------------------------------*/
88 typedef enum
89  {
91  CL_VALUE = 1,
93  CL_LVALUE = 2,
97 
98 /*----------------------------------------------------------------------------------*/
108 typedef enum
109  {
121  } CExprValueType;
122 
123 
124 /*----------------------------------------------------------------------------------*/
134 typedef struct cType
135  {
137  unsigned long tcode;
139  int size;
141  unsigned long madeofResource;
143  union
144  {
145  struct cType *madeof; /* Member definition for struct/union.
146  Type of derefence if pointer. */
147  unsigned long offset; /* Shift count for bit fields. */
148  } detail;
150  int tnumber;
151  } CType;
152 
153 typedef union types_u
154  {
155  bool b;
156  char c; // CHAR_OK
162  int i;
164  float f;
165  double d;
166  char *pc; // CHAR_OK
168  bool *pb;
169  void *pv;
170  }
171 Types_u;
172 
174  {
175  /*----------------------------------------------------------------------------------*//*+---------------+---------------+---------------+---------------+---------------+------*/
180  /*----------------------------------------------------------------------------------*//*+---------------+---------------+---------------+---------------+---------------+------*/
186  /*----------------------------------------------------------------------------------*//*+---------------+---------------+---------------+---------------+---------------+------*/
190  struct cType *ptype;
191  };
192 
193 /*----------------------------------------------------------------------------------*/
212 typedef struct cExprResult CExprResult;
213 
215  {
216  /*----------------------------------------------------------------------------------*//*+---------------+---------------+---------------+---------------+---------------+------*/
222  /*----------------------------------------------------------------------------------*//*+---------------+---------------+---------------+---------------+---------------+------*/
227  union
228  {
229  long valLong;
231  double valDouble;
232  void *valPointer;
236  } val;
237  };
238 
239 /*----------------------------------------------------------------------------------*/
244 typedef struct cExprValue CExprValue;
245 typedef struct symbolSet SymbolSet;
246 
union cExprValue::@174 val
the value resulting from evaluating the expression.
void * valPointer
Definition: cexpr.h:232
double valDouble
Definition: cexpr.h:231
struct cType * madeof
Definition: cexpr.h:145
int tnumber
element count for arrays, field width for bit fields.
Definition: cexpr.h:150
Definition: cexpr.h:173
visibility mask used by the MDL debugger.
Definition: cexpr.h:64
wchar_t WChar
Definition: Bentley.h:223
Types_u value
The actual value if class is CL_VALUE; a pointer to the actual value if class is CL_LVALUE; undefined...
Definition: cexpr.h:185
used only by the MDL debugger.
Definition: cexpr.h:37
CExprSymbolClass
Definition: cexpr.h:34
Definition: cexpr.h:153
visibility mask used by the Dialog Manager.
Definition: cexpr.h:68
int size
size for associated data.
Definition: cexpr.h:139
uint16_t UInt16
Definition: Bentley.r.h:118
char * pc
Definition: cexpr.h:166
UInt32 valULong
Definition: cexpr.h:230
used by MicroStation database applications.
Definition: cexpr.h:73
bool b
Definition: cexpr.h:155
CExprValue.
Definition: cexpr.h:111
void * pv
Definition: cexpr.h:169
Int16 s
Definition: cexpr.h:158
int16_t Int16
Definition: Bentley.r.h:117
unsigned long madeofResource
resource handle if "madeof" is defined in a resource file; 0 otherwise
Definition: cexpr.h:141
used only by the MDL debugger.
Definition: cexpr.h:39
uint32_t UInt32
Definition: Bentley.r.h:128
bool * pb
Definition: cexpr.h:168
used only by the MDL debugger.
Definition: cexpr.h:47
CExprResultClass
Describes the possible values of CExprResult.
Definition: cexpr.h:88
used when publishing a structure or union.
Definition: cexpr.h:43
WChar * pw
Definition: cexpr.h:167
used when publishing an MDL function.
Definition: cexpr.h:45
CExprValue.
Definition: cexpr.h:114
UInt16 us
Definition: cexpr.h:159
int32_t Int32
Definition: Bentley.r.h:119
indicates that CExprResult.
Definition: cexpr.h:95
float f
Definition: cexpr.h:164
union cType::@173 detail
detailed information about the type.
UInt32 ul
Definition: cexpr.h:161
unsigned char byte
Definition: Bentley.r.h:144
byte resultClass
One of the values defined in CExprResultClass, it describes the contents of value.
Definition: cexpr.h:179
uint64_t UInt64
Definition: Bentley.r.h:131
int i
Definition: cexpr.h:162
struct cType CType
Describes a data type for the C-expression handling functions.
byte uc
Definition: cexpr.h:157
unsigned long tcode
one of the values from MdlTypecodes.
Definition: cexpr.h:137
CExprValue.
Definition: cexpr.h:120
Int64 i64
Definition: cexpr.h:163
CExprValueType
describes the type of values stored in CExprValue.
Definition: cexpr.h:108
UInt64 elementID
Definition: cexpr.h:234
char c
Definition: cexpr.h:156
visibility mask used by the calculator.
Definition: cexpr.h:66
unsigned long offset
Definition: cexpr.h:147
Definition: cexpr.h:214
CExprVisibilityMask
Identifies the standard visiblity masks.
Definition: cexpr.h:61
struct symbolSet SymbolSet
Definition: cexpr.h:245
int64_t Int64
Definition: Bentley.r.h:130
indicates that CExprResult.
Definition: cexpr.h:93
Int32 l
Definition: cexpr.h:160
UInt64 valULong64
Definition: cexpr.h:235
union types_u Types_u
long valLong
Definition: cexpr.h:229
CExprValue.
Definition: cexpr.h:118
not used by MicroStation.
Definition: cexpr.h:70
indicates that CExprResult.
Definition: cexpr.h:91
Describes a data type for the C-expression handling functions.
Definition: cexpr.h:134
CExprValue.
Definition: cexpr.h:116
Int64 valLong64
Definition: cexpr.h:233
used when publishing a variable.
Definition: cexpr.h:41
CExprValueType type
indicates the type of value in val.
Definition: cexpr.h:221
double d
Definition: cexpr.h:165
struct cType * ptype
The actual type of the result.
Definition: cexpr.h:190

Copyright © 2017 Bentley Systems, Incorporated. All rights reserved.