diff options
| -rw-r--r-- | bruiser/bruiser.cpp | 13 | 
1 files changed, 11 insertions, 2 deletions
| diff --git a/bruiser/bruiser.cpp b/bruiser/bruiser.cpp index e388ae6..89e84f2 100644 --- a/bruiser/bruiser.cpp +++ b/bruiser/bruiser.cpp @@ -66,6 +66,7 @@ using namespace clang::tooling;  /**********************************************************************************************************************/  /*global vars*/  static llvm::cl::OptionCategory BruiserCategory("Empty"); +std::vector<std::string> PushToLua;  bruiser::M0_ERR m0_err;  bruiser::BruiserReport BruiseRep; @@ -413,6 +414,7 @@ class LiveListFuncs : public MatchFinder::MatchCallback            //printf(CYAN"%s",  R.getRewrittenText(clang::SourceRange(SLShebang, SLBody.getLocWithOffset(-1))).c_str());            //printf(NORMAL "\n");            PRINT_WITH_COLOR_LB(CYAN, R.getRewrittenText(clang::SourceRange(SLShebang, SLBody.getLocWithOffset(-1))).c_str()); +          PushToLua.push_back(R.getRewrittenText(clang::SourceRange(SLShebang, SLBody.getLocWithOffset(-1))));            //PRINT_WITH_COLOR_LB(GREEN, "end");          }          else @@ -420,6 +422,7 @@ class LiveListFuncs : public MatchFinder::MatchCallback            SourceLocation SL = FD->getLocStart();            SourceLocation SLE = FD->getLocEnd();            PRINT_WITH_COLOR_LB(CYAN, R.getRewrittenText(clang::SourceRange(SL, SLE)).c_str()); +          PushToLua.push_back(R.getRewrittenText(clang::SourceRange(SL, SLE)));          }        }      } @@ -440,6 +443,7 @@ class LiveListVars : public MatchFinder::MatchCallback          const clang::VarDecl* VD = MR.Nodes.getNodeAs<clang::VarDecl>("livelistvars");          PRINT_WITH_COLOR_LB(CYAN, R.getRewrittenText(SourceRange(VD->getLocStart(), VD->getLocEnd())).c_str()); +        PushToLua.push_back(R.getRewrittenText(SourceRange(VD->getLocStart(), VD->getLocEnd())));        }      } @@ -459,6 +463,7 @@ class LiveListRecords : public MatchFinder::MatchCallback          const clang::RecordDecl* RD = MR.Nodes.getNodeAs<clang::RecordDecl>("livelistvars");          PRINT_WITH_COLOR_LB(CYAN, R.getRewrittenText(SourceRange(RD->getLocStart(), RD->getLocEnd())).c_str()); +        PushToLua.push_back(R.getRewrittenText(SourceRange(RD->getLocStart(), RD->getLocEnd())));        }      } @@ -833,10 +838,14 @@ class LuaWrapper  #define LIST_GENERATOR(__x1) \      int List##__x1(lua_State* __ls)\      {\ -      unsigned int InArgCnt = 0;\ +      unsigned int InArgCnt = 0U;\        InArgCnt = lua_gettop(__ls);\ +      unsigned int returncount=0U;\        this->GetClangTool().run(newFrontendActionFactory<LiveActionList##__x1>().get());\ -      return 1;\ +      for(auto &iter : PushToLua)\ +      {lua_pushstring(__ls, iter.c_str());returncount++;}\ +      PushToLua.clear();\ +      return returncount;\      }  #define LIST_LIST_GENERATORS \ | 
