]> rtime.felk.cvut.cz Git - boost-statechart-viewer.git/blobdiff - src/visualizer.cpp
Update deffering event.
[boost-statechart-viewer.git] / src / visualizer.cpp
index 0a034896a3f165f2e4061fe004ab1b2046b763d6..1a0af5ac467f996dff2bedf4d5d3d34f29468bc8 100644 (file)
@@ -127,7 +127,7 @@ class FindStates : public ASTConsumer
        FullSourceLoc *fsloc; /** Full Source Location instance for holding Source Manager. */
        public:
 
-       list<string> getStates() /** Return list of states. */
+       list<string> getStates() /** Return list of states of the state machine. */
        {
                return states;
        }
@@ -335,11 +335,11 @@ class FindStates : public ASTConsumer
                {
                        decl->print(x);
                        line = get_return(x.str());
-                       if(test_model(line,"result"))
+                       if(get_model(line)==5)
                        {
                                const FunctionDecl *fDecl = dyn_cast<FunctionDecl>(decl);
                                const ParmVarDecl *pvd = fDecl->getParamDecl(0);
-                                QualType qt = pvd->getOriginalType();
+                               QualType qt = pvd->getOriginalType();
                                event = qt.getAsString();
                                if(event[event.length()-1]=='&') event = event.substr(0,event.length()-2);
                                event = event.substr(event.rfind(" ")+1);
@@ -393,11 +393,16 @@ class FindStates : public ASTConsumer
                        case 98 :       line = sman.getCharacterData(dyn_cast<ReturnStmt>(stmt)->getReturnLoc()); 
                                                        line = get_line_of_code(line).substr(6);
                                                        line = line.substr(0,line.find("("));
-                                                       if(test_model(line,"transit"))
+                                                       if(get_model(line)==6)
                                                        {
                                                                param = get_params(line);
                                                                transitions.push_back(event.append(",").append(param));
                                                        }
+                                                       if(get_model(line) == 7)
+                                                       {
+                                                               param = ",";
+                                                               transitions.push_back(param.append(event));
+                                                       }
                                                        break;
                        case 99 :       find_return_stmt(stmt, event);
                                                        break;