14 #define EXPR_TYPEDEFS(_name_) \
15 BEGIN_BENTLEY_ECOBJECT_NAMESPACE \
17 typedef _name_ * _name_##P; \
18 typedef _name_ & _name_##R; \
19 typedef _name_ const* _name_##CP; \
20 typedef _name_ const& _name_##CR; \
21 END_BENTLEY_ECOBJECT_NAMESPACE
324 virtual bool OpenParens() = 0;
326 virtual bool CloseParens() = 0;
328 virtual bool StartArrayIndex(
NodeCR node) = 0;
330 virtual bool EndArrayIndex(
NodeCR node) = 0;
332 virtual bool StartArguments(
NodeCR node) = 0;
334 virtual bool EndArguments(
NodeCR node) = 0;
336 virtual bool Comma() = 0;
338 virtual bool ProcessNode(
NodeCR node) = 0;
340 virtual bool ProcessUnits (
UnitSpecCR units) = 0;
NodeVector::iterator NodeVectorIterator
Definition: ECExpressions.h:96
Definition: ECExpressions.h:250
IIfNode const & IIfNodeCR
Definition: ECExpressions.h:43
bvector< NodeCP > NodeCPVector
Definition: ECExpressions.h:95
UnitSpec const & UnitSpecCR
Definition: ECObjects.h:102
Definition: ECExpressions.h:278
Definition: ECExpressions.h:243
Definition: ECExpressions.h:262
bvector< NodePtr > NodePtrVector
Definition: ECExpressions.h:98
Definition: ECExpressions.h:270
PrimaryListNode & PrimaryListNodeR
Definition: ECExpressions.h:55
Definition: ECExpressions.h:263
Definition: ECExpressions.h:252
Definition: ECExpressions.h:268
Definition: ECExpressions.h:248
Definition: ECExpressions.h:265
LogicalNode const & LogicalNodeCR
Definition: ECExpressions.h:48
Definition: ECExpressions.h:286
A context in which multiple IECInstances provide the context for expression evaluation.
Definition: ECExpressions.h:152
ExpressionContextR GetExpressionContextR() const
Returns the ExpressionContext associated with this ExpressionResolver.
Definition: ECExpressions.h:391
Definition: ECExpressions.h:241
Definition: ECExpressions.h:290
ExpressionStatus(* ExpressionInstanceMethod_t)(EvaluationResult &evalResult, ECInstanceListCR instanceList, EvaluationResultVector &arguments)
Definition: ECExpressions.h:106
ExpressionResolver(ExpressionContextR context)
Constructs ExpressionResolver from the specified ExpressionContext.
Definition: ECExpressions.h:385
Base class for all symbol types.
Definition: ECExpressions.h:201
Definition: ECExpressions.h:242
Definition: ECExpressions.h:293
Definition: ECExpressions.h:298
Definition: ECExpressions.h:295
Definition: ECExpressions.h:247
ExpressionStatus
Enumerates the possible return values for evaluating an expression or its value.
Definition: ECObjects.h:340
Definition: ECExpressions.h:297
Definition: ECExpressions.h:292
ECValue const & ECValueCR
Definition: ECObjects.h:46
virtual ~NodeVisitor()
Definition: ECExpressions.h:322
Definition: ECExpressions.h:288
Definition: ECExpressions.h:296
The context in which an expression is evaluated.
Definition: ECExpressions.h:120
ComparisonNode const & ComparisonNodeCR
Definition: ECExpressions.h:29
ExpressionStatus(* ExpressionValueListMethod_t)(EvaluationResult &evalResult, IValueListResultCR valueList, EvaluationResultVector &arguments)
Definition: ECExpressions.h:109
#define NULL
Definition: Bentley.h:157
Definition: ECExpressions.h:264
An InstanceListExpressionContext which simply wraps one or more IECInstances.
Definition: ECExpressions.h:166
UnaryArithmeticNode const & UnaryArithmeticNodeCR
Definition: ECExpressions.h:61
Definition: ECExpressions.h:289
#define ECOBJECTS_EXPORT
Definition: ECObjects.h:20
Definition: ECExpressions.h:259
Parses an EC expression string to produce an expression tree which can be used to evaluate the expres...
Definition: ECExpressions.h:347
PrimitiveType
Enumeration of primitive datatypes supported by native "ECObjects" implementation.
Definition: ECObjects.h:322
Definition: ECExpressions.h:287
Definition: ECExpressions.h:235
Visitor interface for an in-order traversal of the Nodes of an ECExpression tree. ...
Definition: ECExpressions.h:320
Definition: ECExpressions.h:279
Definition: ECExpressions.h:301
Node const * NodeCP
Definition: ECExpressions.h:52
Definition: ECExpressions.h:240
Definition: ECExpressions.h:267
ExpressionToken
Definition: ECExpressions.h:233
Definition: ECExpressions.h:280
Definition: ECExpressions.h:260
bvector< EvaluationResult > EvaluationResultVector
Definition: ECExpressions.h:101
Definition: ECExpressions.h:251
BentleyStatus
Definition: Bentley.h:208
Definition: ECExpressions.h:244
Definition: ECExpressions.h:236
A shared pointer template for reference-counted objects.
Definition: RefCounted.h:119
DivideNode const & DivideNodeCR
Definition: ECExpressions.h:33
Definition: ECExpressions.h:257
IECInstance const & IECInstanceCR
Definition: ECObjects.h:67
EvaluationOptions
Options to be used when evaluating an ECExpression.
Definition: ECObjects.h:261
Definition: ECExpressions.h:254
bvector< NodeP > NodeVector
Definition: ECExpressions.h:94
Variant-like object used to set and retrieve property values in ECInstances.
Definition: ECValue.h:73
Definition: ECExpressions.h:253
Definition: ECExpressions.h:282
Definition: ECExpressions.h:300
Definition: ECExpressions.h:277
Definition: ECExpressions.h:258
ExpressionStatus(* ExpressionStaticMethod_t)(EvaluationResult &evalResult, EvaluationResultVector &arguments)
Definition: ECExpressions.h:105
Used to introduce a named method into the context.
Definition: ECExpressions.h:225
ECInstanceList const & ECInstanceListCR
Definition: ECInstance.h:609
Definition: ECExpressions.h:275
Definition: ECExpressions.h:239
Definition: ECExpressions.h:256
NodePtrVector::iterator NodePtrVectorIterator
Definition: ECExpressions.h:99
Concrete class that can be used to implement the reference-counting pattern.
Definition: RefCounted.h:109
Definition: ECExpressions.h:246
Definition: ECExpressions.h:245
EvaluationResultVector::iterator EvaluationResultVectorIterator
Definition: ECExpressions.h:102
Definition: ECExpressions.h:299
An object which can optimize an ECExpression tree by resolving constant sub-expressions to literal va...
Definition: ECExpressions.h:370
Definition: ECExpressions.h:273
Defines an expression tree for a parsed EC expression.
Definition: ECExpressions.h:418
Definition: ECExpressions.h:255
PlusMinusNode const & PlusMinusNodeCR
Definition: ECExpressions.h:54
IValueListResult const & IValueListResultCR
Definition: ECExpressions.h:40
Definition: ECExpressions.h:237
ShiftNode const & ShiftNodeCR
Definition: ECExpressions.h:58
Holds the result of evaluating an EC expression.
Definition: ECExpressions.h:360
ExpressionContextCR GetExpressionContext() const
Returns the ExpressionContext associated with this ExpressionResolver.
Definition: ECExpressions.h:389
Definition: ECExpressions.h:271
Definition: ECExpressions.h:291
Definition: ECExpressions.h:266
ConcatenateNode const & ConcatenateNodeCR
Definition: ECExpressions.h:30
Used to give a name to an instance.
Definition: ECExpressions.h:210
ExpressionContext const & ExpressionContextCR
Definition: ECExpressions.h:37
Definition: ECExpressions.h:294
Definition: ECExpressions.h:272
Definition: ECExpressions.h:269
#define EXPR_TYPEDEFS(_name_)
Definition: ECExpressions.h:14
Definition: ECExpressions.h:238
Used to introduce a named value into the context.
Definition: ECExpressions.h:309
MultiplyNode const & MultiplyNodeCR
Definition: ECExpressions.h:51
Definition: ECExpressions.h:276
A context which provides a set of symbols for expression evaluation.
Definition: ECExpressions.h:186
Node const & NodeCR
Definition: ECExpressions.h:52
Definition: ECExpressions.h:284
Definition: ECExpressions.h:261
A string class that has many of the same capabilities as std::string, plus additional functions such ...
Definition: WString.h:51
Definition: ECExpressions.h:249