summaryrefslogtreecommitdiffstats
path: root/test/src/test-promela-parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/src/test-promela-parser.cpp')
-rw-r--r--test/src/test-promela-parser.cpp73
1 files changed, 48 insertions, 25 deletions
diff --git a/test/src/test-promela-parser.cpp b/test/src/test-promela-parser.cpp
index d89bb73..6dc58d1 100644
--- a/test/src/test-promela-parser.cpp
+++ b/test/src/test-promela-parser.cpp
@@ -11,34 +11,57 @@
using namespace uscxml;
using namespace boost;
+extern int promela_debug;
int main(int argc, char** argv) {
+ promela_debug = 0;
+
+ std::list<std::string> expressions;
+ /* declarations */
+// expressions.push_back("bool b1");
+// expressions.push_back("bool b1;");
+// expressions.push_back("bool b1, b2, b3");
+// expressions.push_back("bool b1, b2, b3;");
+// expressions.push_back("bool b1, b2 = 3 + 4, b3, b4, b5;");
+// expressions.push_back("bool b1; bool b2; bool b3; bool b4;");
+// expressions.push_back("bool b1; bool b2; bool b3, b4, b5;");
+// expressions.push_back("bit b = 1;");
+// expressions.push_back("byte state = 1;");
+// expressions.push_back("bool b1, b2 = 1, b3;");
+// expressions.push_back("bool busy[3];");
+// expressions.push_back("bool busy[3], us[4];");
+// expressions.push_back("mtype = {\nred, white, blue,\nabort, accept, ack, sync_ack, close, connect,\ncreate, data, eof, open, reject, sync, transfer,\nFATAL, NON_FATAL, COMPLETE\n}");
- {
- PromelaParser ast("bit b;");
- ast.dump();
- }
-
- {
- PromelaParser ast1("a + (1 << b)");
- PromelaParser ast2("(a + 1) << b");
- ast1.dump();
- ast2.dump();
- }
-
- {
- PromelaParser ast("(b < N)");
- ast.dump();
- }
-
- {
- PromelaParser ast("i+1");
- ast.dump();
- }
-
- {
- PromelaParser ast("(mt+1)%MAX;");
- ast.dump();
+ /* expressions */
+// expressions.push_back("i+1");
+// expressions.push_back("(x == false || t == Bturn);");
+// expressions.push_back("a + (1 << b)");
+// expressions.push_back("(a + 1) << b");
+// expressions.push_back("(b < N)");
+// expressions.push_back("(mt+1)%MAX;");
+
+ /* statements */
+// expressions.push_back("t = Bturn;");
+// expressions.push_back("c++");
+// expressions.push_back("state = state - 1");
+// expressions.push_back("printf(\"hello world\\n\")");
+// expressions.push_back("printf(\"result %d: %d\n\", id, res, foo, bar)");
+// expressions.push_back("printf(\"x = %d\n\", x)");
+// expressions.push_back("(n <= 1)");
+// expressions.push_back("res = (a*a+b)/2*a;");
+// expressions.push_back("assert(0) /* a forced stop, (Chapter 6) */");
+// expressions.push_back("assert(count == 0 || count == 1)");
+
+ for (std::list<std::string>::iterator exprIter = expressions.begin();
+ exprIter != expressions.end();
+ exprIter++) {
+ try {
+ std::cout << std::endl << "'" << *exprIter << "':" << std::endl;
+ PromelaParser ast(*exprIter);
+ ast.dump();
+ } catch (Event e) {
+ std::cerr << e << std::endl;
+ }
}
} \ No newline at end of file