22 #ifndef UTAP_EXPRESSIONBUILDER_HH 23 #define UTAP_EXPRESSIONBUILDER_HH 32 #define defaultIntMin -0x8000 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 const std::string& path)
override;
150 bool isType(
const char*)
override;
154 void exprId(
const char * varName)
override;
155 void exprNat(int32_t)
override;
172 void exprDot(
const char *)
override;
expression_t & operator[](int idx)
void exprArray() override
void exprSumBegin(const char *name) override
void exprPostDecrement() override
void exprMitlBox(int, int) override
void exprMitlFormula() override
void exprMitlDisj() override
TimedAutomataSystem * system
Pointer to the system under construction.
void exprBuiltinFunction2(Constants::kind_t) override
void exprTernary(Constants::kind_t ternaryop, bool firstMissing) override
void typeChannel(PREFIX) override
Called whenever a channel type is parsed.
expression_t exprScenario()
void exprSumDynamicEnd(const char *name) override
void exprForAllEnd(const char *name) override
void exprSumEnd(const char *name) override
void popFrame()
Pop the topmost frame.
void exprNumOf() override
void exprExistsDynamicBegin(const char *, const char *) override
void exprId(const char *varName) override
void exprMitlConj() override
void exprNary(Constants::kind_t op, uint32_t num) override
void exprDeadlock() override
void exprMitlRelease(int, int) override
void typeBoundedInt(PREFIX) override
Called whenever an integer type with a range is parsed.
void exprSMCControl() override
void typeInt(PREFIX) override
Called whenever an integer type is parsed.
void exprBuiltinFunction1(Constants::kind_t) override
std::map< std::string, frame_t > dynamicFrames
void exprUnary(Constants::kind_t unaryop) override
void exprProbaExpected(const char *aggregatingOp) override
void exprFalse() override
void typeScalar(PREFIX) override
Called whenever a scalar type is parsed.
void handleWarning(const std::string &) override
bool resolve(const std::string &, symbol_t &)
void exprAssignment(Constants::kind_t op) override
void exprPreIncrement() override
void typeName(PREFIX, const char *name) override
Called when a type name has been parsed.
void exprCallEnd(uint32_t n) override
ExpressionFragments & getExpressions()
void pushFrame(frame_t)
Push a new frame.
void exprCallBegin() override
void exprProbaQuantitative(Constants::kind_t) override
void push(expression_t e)
void typeVoid() override
Called whenever a void type is parsed.
Partial implementation of the builder interface: The ExpressionBuilder implements all expression rela...
void exprForAllDynamicBegin(const char *, const char *) override
void exprExistsDynamicEnd(const char *) override
void exprForAllDynamicEnd(const char *name) override
template_t * currentTemplate
The template currently being parsed.
void exprSumDynamicBegin(const char *, const char *) override
ExpressionFragments fragments
Expression stack.
void exprComma() override
void typePop() override
Pop type at the topof the type stack.
virtual bool allowProcessReferences()
If this method returns true, it is allowed to access the private identifiers of a process by prefixin...
std::stack< frame_t > frames
Frame stack.
void handleError(const std::string &) override
void typeBool(PREFIX) override
Called whenever a boolean type is parsed.
void exprMitlUntil(int, int) override
void exprMitlAtom() override
void exprSpawn(int params) override
void exprForAllBegin(const char *name) override
void exprProbaQualitative(Constants::kind_t, Constants::kind_t, double) override
void exprSimulate(int, bool=false, int=0) override
void exprPostIncrement() override
ExpressionBuilder(TimedAutomataSystem *)
bool isType(const char *) override
Must return true if and only if name is registered in the symbol table as a named type...
void exprBuiltinFunction3(Constants::kind_t) override
void exprNat(int32_t) override
A reference to an expression.
void exprExistsBegin(const char *name) override
void exprDouble(double) override
void exprForeachDynamicEnd(const char *name) override
void exprProbaCompare(Constants::kind_t, Constants::kind_t) override
void pushDynamicFrameOf(template_t *t, const std::string &name)
type_t & operator[](int idx)
void exprExistsEnd(const char *name) override
void exprMitlNext() override
void exprBinary(Constants::kind_t binaryop) override
void exprDot(const char *) override
void typeDuplicate() override
Duplicate type at the top of the type stack.
type_t applyPrefix(PREFIX, type_t type)
Given a prefix and a type, this method creates a new type by applying the prefix. ...
void popDynamicFrameOf(const std::string &name)
void typeDouble(PREFIX) override
Called whenever a double type is parsed.
void typeClock(PREFIX) override
Called whenever a clock type is parsed.
TypeFragments typeFragments
Type stack.
void exprMitlDiamond(int, int) override
void exprInlineIf() override
void exprForeachDynamicBegin(const char *, const char *) override
void exprPreDecrement() override
expression_t makeConstant(int value)
void addPosition(uint32_t position, uint32_t offset, uint32_t line, const std::string &path) override
Add mapping from an absolute position to a relative XML element.
int32_t scalar_count
Counter for creating unique scalarset names.