22 #ifndef UTAP_EXPRESSIONBUILDER_HH
23 #define UTAP_EXPRESSIONBUILDER_HH
32 #define defaultIntMin -0x7FFF
33 #define defaultIntMax 0x7FFF
56 std::vector<expression_t> data;
59 {
return data[data.size() - idx - 1]; }
61 { data.push_back(e); }
65 uint32_t
size() {
return data.size(); }
71 std::vector<type_t> data;
74 {
return data[data.size() - idx - 1]; }
76 { data.push_back(value); }
78 { assert(!data.empty()); data.pop_back(); }
80 { assert(!data.empty()); data.push_back(data.back()); }
135 uint32_t
position, uint32_t offset, uint32_t line, std::string path);
150 virtual bool isType(
const char*);
154 virtual void exprId(
const char * varName);
172 virtual void exprDot(
const char *);
189 virtual void exprSimulate(
int,
int,
int,
bool =
false,
int =0);
position_t position
Definition: abstractbuilder.h:48
virtual void exprMitlRelease(int, int)
Definition: expressionbuilder.cpp:1049
std::map< std::string, frame_t > dynamicFrames
Definition: expressionbuilder.h:129
virtual void exprSMCControl(int)
Definition: expressionbuilder.cpp:790
A reference to a symbol.
Definition: symbols.h:107
ExpressionFragments & getExpressions()
Definition: expressionbuilder.cpp:105
virtual void typePop()
Pop type at the topof the type stack.
Definition: expressionbuilder.cpp:158
virtual void exprProbaQualitative(int, Constants::kind_t, Constants::kind_t, double)
Definition: expressionbuilder.cpp:750
virtual void typeScalar(PREFIX)
Called whenever a scalar type is parsed.
Definition: expressionbuilder.cpp:235
virtual void exprPreDecrement()
Definition: expressionbuilder.cpp:458
void pushFrame(frame_t)
Push a new frame.
Definition: expressionbuilder.cpp:89
expression_t & operator[](int idx)
Definition: expressionbuilder.h:58
PREFIX
Definition: builder.h:85
virtual void exprInlineIf()
Definition: expressionbuilder.cpp:581
virtual void exprTrue()
Definition: expressionbuilder.cpp:295
virtual void exprMitlFormula()
Definition: expressionbuilder.cpp:1012
virtual void exprTernary(Constants::kind_t ternaryop, bool firstMissing)
Definition: expressionbuilder.cpp:571
virtual void exprNumOf()
Definition: expressionbuilder.cpp:1177
TimedAutomataSystem * system
Pointer to the system under construction.
Definition: expressionbuilder.h:94
bool resolve(std::string, symbol_t &)
Definition: expressionbuilder.cpp:99
virtual void exprMitlAtom()
Definition: expressionbuilder.cpp:1149
virtual void exprCallEnd(uint32_t n)
Definition: expressionbuilder.cpp:344
virtual void exprSumDynamicEnd(const char *name)
Definition: expressionbuilder.cpp:1279
virtual void typeName(PREFIX, const char *name)
Called when a type name has been parsed.
Definition: expressionbuilder.cpp:273
virtual void exprBuiltinFunction2(Constants::kind_t)
Definition: expressionbuilder.cpp:470
virtual void exprMitlDiamond(int, int)
Definition: expressionbuilder.cpp:1073
kind_t
Definition: common.h:37
virtual bool allowProcessReferences()
If this method returns true, it is allowed to access the private identifiers of a process by prefixin...
Definition: expressionbuilder.h:128
uint32_t size()
Definition: expressionbuilder.h:65
A reference to a frame.
Definition: symbols.h:183
void pop()
Definition: expressionbuilder.h:62
virtual void exprPostDecrement()
Definition: expressionbuilder.cpp:452
void push(expression_t e)
Definition: expressionbuilder.h:60
void push(type_t value)
Definition: expressionbuilder.h:75
virtual void typeChannel(PREFIX)
Called whenever a channel type is parsed.
Definition: expressionbuilder.cpp:196
virtual void exprProbaCompare(int, Constants::kind_t, int, Constants::kind_t)
Definition: expressionbuilder.cpp:877
virtual void exprForAllBegin(const char *name)
Definition: expressionbuilder.cpp:681
Definition: expressionbuilder.h:68
virtual void typeDuplicate()
Duplicate type at the top of the type stack.
Definition: expressionbuilder.cpp:153
virtual void exprDouble(double)
Definition: expressionbuilder.cpp:309
virtual void typeBoundedInt(PREFIX)
Called whenever an integer type with a range is parsed.
Definition: expressionbuilder.cpp:188
virtual void typeDouble(PREFIX)
Called whenever a double type is parsed.
Definition: expressionbuilder.cpp:182
virtual void popDynamicFrameOf(std::string name)
Definition: expressionbuilder.cpp:1332
virtual void typeClock(PREFIX)
Called whenever a clock type is parsed.
Definition: expressionbuilder.cpp:202
int32_t scalar_count
Counter for creating unique scalarset names.
Definition: expressionbuilder.h:100
TypeFragments typeFragments
Type stack.
Definition: expressionbuilder.h:88
virtual void exprExistsBegin(const char *name)
Definition: expressionbuilder.cpp:714
type_t applyPrefix(PREFIX, type_t type)
Given a prefix and a type, this method creates a new type by applying the prefix. ...
Definition: expressionbuilder.cpp:130
virtual void exprExit()
Definition: expressionbuilder.cpp:1172
virtual void exprMitlNext()
Definition: expressionbuilder.cpp:1135
virtual void exprExistsDynamicBegin(const char *, const char *)
Definition: expressionbuilder.cpp:1227
virtual void exprAssignment(Constants::kind_t op)
Definition: expressionbuilder.cpp:479
Definition: expressionbuilder.h:53
A reference to an expression.
Definition: expression.h:68
virtual void exprSumEnd(const char *name)
Definition: expressionbuilder.cpp:737
virtual void exprProbaExpected(int, const char *)
Definition: expressionbuilder.cpp:926
virtual void exprArray()
Definition: expressionbuilder.cpp:417
virtual void exprBinary(Constants::kind_t binaryop)
Definition: expressionbuilder.cpp:503
virtual void exprId(const char *varName)
Definition: expressionbuilder.cpp:316
virtual void exprExistsEnd(const char *name)
Definition: expressionbuilder.cpp:719
virtual void pushDynamicFrameOf(template_t *t, std::string name)
Definition: expressionbuilder.cpp:1324
virtual void exprNat(int32_t)
Definition: expressionbuilder.cpp:334
virtual void exprExistsDynamicEnd(const char *)
Definition: expressionbuilder.cpp:1239
Definition: abstractbuilder.h:45
template_t * currentTemplate
The template currently being parsed.
Definition: expressionbuilder.h:97
virtual void exprSpawn(int params)
Definition: expressionbuilder.cpp:1161
virtual void addPosition(uint32_t position, uint32_t offset, uint32_t line, std::string path)
Add mapping from an absolute position to a relative XML element.
Definition: expressionbuilder.cpp:73
virtual void exprSimulate(int, int, int, bool=false, int=0)
Definition: expressionbuilder.cpp:970
virtual void exprNary(Constants::kind_t op, uint32_t num)
Definition: expressionbuilder.cpp:531
virtual bool isType(const char *)
Must return true if and only if name is registered in the symbol table as a named type...
Definition: expressionbuilder.cpp:110
virtual void handleError(std::string)
Definition: expressionbuilder.cpp:79
type_t & operator[](int idx)
Definition: expressionbuilder.h:73
virtual void exprUnary(Constants::kind_t unaryop)
Definition: expressionbuilder.cpp:488
virtual void exprMitlDisj()
Definition: expressionbuilder.cpp:1118
void duplicate()
Definition: expressionbuilder.h:79
virtual void exprSumDynamicBegin(const char *, const char *)
Definition: expressionbuilder.cpp:1267
virtual void exprCallBegin()
Definition: expressionbuilder.cpp:339
virtual void exprFalse()
Definition: expressionbuilder.cpp:302
virtual void exprComma()
Definition: expressionbuilder.cpp:591
virtual void exprForeachDynamicBegin(const char *, const char *)
Definition: expressionbuilder.cpp:1296
virtual expression_t exprScenario()
Definition: expressionbuilder.cpp:554
A reference to a type.
Definition: type.h:92
virtual void exprDot(const char *)
Definition: expressionbuilder.cpp:600
virtual void exprForeachDynamicEnd(const char *name)
Definition: expressionbuilder.cpp:1307
virtual void exprForAllEnd(const char *name)
Definition: expressionbuilder.cpp:700
virtual void exprPreIncrement()
Definition: expressionbuilder.cpp:446
void pop()
Definition: expressionbuilder.h:77
virtual void exprSumBegin(const char *name)
Definition: expressionbuilder.cpp:732
virtual void exprMitlBox(int, int)
Definition: expressionbuilder.cpp:1096
virtual void exprMitlUntil(int, int)
Definition: expressionbuilder.cpp:1024
virtual void typeInt(PREFIX)
Called whenever an integer type is parsed.
Definition: expressionbuilder.cpp:169
virtual void typeBool(PREFIX)
Called whenever a boolean type is parsed.
Definition: expressionbuilder.cpp:163
virtual void handleWarning(std::string)
Definition: expressionbuilder.cpp:84
virtual void exprDeadlock()
Definition: expressionbuilder.cpp:329
expression_t makeConstant(int value)
Definition: expressionbuilder.cpp:120
virtual void exprBuiltinFunction1(Constants::kind_t)
Definition: expressionbuilder.cpp:464
virtual void exprPostIncrement()
Definition: expressionbuilder.cpp:440
virtual void exprProbaQuantitative(int, Constants::kind_t, bool stopCondition=false)
Definition: expressionbuilder.cpp:813
virtual void typeVoid()
Called whenever a void type is parsed.
Definition: expressionbuilder.cpp:208
virtual void exprForAllDynamicEnd(const char *name)
Definition: expressionbuilder.cpp:1196
void popFrame()
Pop the topmost frame.
Definition: expressionbuilder.cpp:94
std::stack< frame_t > frames
Frame stack.
Definition: expressionbuilder.h:91
ExpressionFragments fragments
Expression stack.
Definition: expressionbuilder.h:85
virtual void exprMitlConj()
Definition: expressionbuilder.cpp:1127
ExpressionBuilder(TimedAutomataSystem *)
Definition: expressionbuilder.cpp:66
Partial implementation of the builder interface: The ExpressionBuilder implements all expression rela...
Definition: expressionbuilder.h:50
virtual void exprForAllDynamicBegin(const char *, const char *)
Definition: expressionbuilder.cpp:1185