diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-12-01 11:02:40 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-12-01 11:02:40 (GMT) |
commit | af6609592298c5e047e37e5ae2b47e6a8edbb677 (patch) | |
tree | e6e7da1cd34dccf3fb4f389e684b7c899b12987a /src/uscxml/plugins/datamodel/promela/PromelaParser.h | |
parent | d2e90c02e5ad19a5857e7c7fb87f248182fdb32d (diff) | |
download | uscxml-af6609592298c5e047e37e5ae2b47e6a8edbb677.zip uscxml-af6609592298c5e047e37e5ae2b47e6a8edbb677.tar.gz uscxml-af6609592298c5e047e37e5ae2b47e6a8edbb677.tar.bz2 |
Nested invokers and delayed events for PROMELA model checking
Diffstat (limited to 'src/uscxml/plugins/datamodel/promela/PromelaParser.h')
-rw-r--r-- | src/uscxml/plugins/datamodel/promela/PromelaParser.h | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/uscxml/plugins/datamodel/promela/PromelaParser.h b/src/uscxml/plugins/datamodel/promela/PromelaParser.h index 6cf9a81..303b9be 100644 --- a/src/uscxml/plugins/datamodel/promela/PromelaParser.h +++ b/src/uscxml/plugins/datamodel/promela/PromelaParser.h @@ -32,8 +32,16 @@ namespace uscxml { class PromelaParser; -struct PromelaParserNode { - PromelaParserNode() : type(0) {} +class PromelaParserNode { +public: + struct Location { + int firstLine; + int firstCol; + int lastLine; + int lastCol; + }; + + PromelaParserNode() : type(0), parent(NULL), loc(NULL) {} virtual ~PromelaParserNode(); void merge(PromelaParserNode* node); @@ -45,7 +53,8 @@ struct PromelaParserNode { int type; std::string value; std::list<PromelaParserNode*> operands; - + PromelaParserNode* parent; + Location* loc; }; class PromelaParser { @@ -58,12 +67,13 @@ public: static std::string typeToDesc(int type); + PromelaParser() : ast(NULL) {} PromelaParser(const std::string& expr); PromelaParser(const std::string& expr, int nrArgs, ...); virtual ~PromelaParser(); virtual PromelaParserNode* node(int type, int nrArgs, ...); - virtual PromelaParserNode* value(int type, const char* value); + virtual PromelaParserNode* value(int type, void* location, const char* value); void dump(); int parseInCompound; @@ -86,6 +96,6 @@ protected: } -void promela_error (uscxml::PromelaParser* ctx, void* yyscanner, const char* err); +void promela_error (void* yylloc_param, uscxml::PromelaParser* ctx, void* yyscanner, const char* err); #endif /* end of include guard: PROMELA_H_9AB78YB1 */ |