diff --git a/.gitignore b/.gitignore index f27ef5d..b7c4cca 100644 --- a/.gitignore +++ b/.gitignore @@ -1,72 +1,79 @@ # Compiled Object files *.slo *.lo *.o *.obj # Compiled Dynamic libraries *.so *.so.* *.dylib *.dll # Compiled Static libraries *.lai *.la *.a *.lib # Executables *.exe *.out *.app *.class # Mobile Tools for Java (J2ME) .mtj.tmp/ # Package Files # *.jar *.war *.ear # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* # Qt-es /.qmake.cache /.qmake.stash *.pro.user *.pro.user.* *.moc moc_*.cpp qrc_*.cpp ui_*.h Makefile* *-build-* # QtCreator *.autosave coco/*.old coco/*~ *~ cpp/build-*/* cpp/xreate-debug/* cpp/xreate-release/* cpp/.idea cpp/CMakeLists.txt.user* hs/* project/* nb*.xml .* target/* /tools/phabricator/xreate-frontend/nbproject/private/ documentation/trash4/ +trash/ CMakeFiles/ gen-cpp/ -gen-php +generated-cpp/ +gen-php/ +generated-js/ +books/ +build/ +coco/Parser.* +coco/Scanner.* diff --git a/cpp/src/pass/environmenttestspass.cpp b/cpp/src/pass/environmenttestspass.cpp deleted file mode 100644 index bac56b7..0000000 --- a/cpp/src/pass/environmenttestspass.cpp +++ /dev/null @@ -1,30 +0,0 @@ -/* - * environmenttestspass.cpp - * - * Created on: Nov 17, 2015 - * Author: pgess - */ - -#include -#include - -void -EnvironmentTestsPass::run(){ - - list arftefacts = solver->query("depends(env())"); - - //check artifacts - for (artefact: artifacts){ - Function funcProbe = findProberForArtefact(artefact); - - result = funcProbe->run(); - results->save(result); - } - - for (artefact: artefacts){ - if (results->getResult(artefact)){ - Function funcProvider = findProviderForArtefact(artefact); - funcProvider->run(); - } - } -} diff --git a/cpp/src/pass/environmenttestspass.h b/cpp/src/pass/environmenttestspass.h deleted file mode 100644 index 651acda..0000000 --- a/cpp/src/pass/environmenttestspass.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * environmenttestspass.h - * - * Created on: Nov 17, 2015 - * Author: pgess - */ - -#ifndef SRC_PASS_ENVIRONMENTTESTSPASS_H_ -#define SRC_PASS_ENVIRONMENTTESTSPASS_H_ - - - -class EnvironmentTestsPass { - -} - -#endif /* SRC_PASS_ENVIRONMENTTESTSPASS_H_ */ diff --git a/cpp/src/query/ptrvalid.cpp b/cpp/src/query/ptrvalid.cpp deleted file mode 100644 index ff31d76..0000000 --- a/cpp/src/query/ptrvalid.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* - * QueryPtrValid.cpp - * - * Created on: Jun 17, 2015 - * Author: pgess - */ - -#include - -using namespace xreate; - -bool -QueryPtrValid::assertValidPtr(const Symbol& s) { - return false; -} diff --git a/cpp/src/query/ptrvalid.h b/cpp/src/query/ptrvalid.h deleted file mode 100644 index 02794c5..0000000 --- a/cpp/src/query/ptrvalid.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * QueryPtrValid.h - * - * Created on: Jun 17, 2015 - * Author: pgess - */ - -#ifndef SRC_QUERY_PTRVALID_H_ -#define SRC_QUERY_PTRVALID_H_ - -#include - -namespace xreate { - -class QueryPtrValid: public xreate::IQuery { -public: - QueryPtrValid(); - virtual void init(ClaspLayer* clasp); - - static bool assertValidPtr(const Symbol& s); -}; - -} -#endif /* SRC_QUERY_PTRVALID_H_ */ diff --git a/cpp/tests/adhoc-skipdetection.cpp b/cpp/tests/adhoc-skipdetection.cpp deleted file mode 100644 index 6dcb4f5..0000000 --- a/cpp/tests/adhoc-skipdetection.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/* - * skipdetection.cpp - * - * Created on: Jul 10, 2015 - * Author: pgess - */ - -#include "passmanager.h" -#include "clasplayer.h" -#include "gtest/gtest.h" - -using namespace xreate; -using namespace std; - -//TASK implement loop "skip" command -TEST(Adhoc_Loop_SkipDetection, DISABLED_testNoneValueTagExists){ - PassManager* man = PassManager::prepareForCode - ("test = function:: int; entry {\n" - " data = [1..5]::[int].\n" - " \n" - " result = loop fold(data->i::int, 0->sum)::int{\n" - " if (i==3)::bool {valNull = null. valNull} else {i+sum}\n" - " }.\n" - " \n" - " result\n" - "}"); - - man->runWithoutCompilation(); - ClaspLayer::ModelFragment answer = man->clasp->query(Config::get("clasp.nonevalue")); - int countNoneValue = 0; - if (answer) - countNoneValue = std::distance(answer->first, answer->second); - EXPECT_EQ(1, countNoneValue); -} diff --git a/cpp/tests/diagnostic-messages.cpp b/cpp/tests/diagnostic-messages.cpp deleted file mode 100644 index 66d2db1..0000000 --- a/cpp/tests/diagnostic-messages.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/* - * diagnostic-messages.cpp - * - * Created on: Oct 27, 2015 - * Author: pgess - */ - -#include "passmanager.h" -#include "pass/dfapass.h" - -#include "gtest/gtest.h" - -using namespace std; -using namespace xreate; - -TEST(Diagnostic, DISABLED_DFA_recursion1){ - - //TODO Error while processing recursion, There should be some diagnostic complaints here - std::string code = \ - "test1 = function::[int] {\n" - " varRecursion = loop map(varRecursion->el:: int)::[int]{\n" - " el\n" - " }.\n" - " \n" - " varRecursion\n" - "}"; - - PassManager* man = PassManager::prepareForCode(move(code)); - DFAPass* pass = new DFAPass(man); - pass->run(); - pass->finish(); -} diff --git a/cpp/tests/installation.cpp b/cpp/tests/installation.cpp deleted file mode 100644 index 19c48b8..0000000 --- a/cpp/tests/installation.cpp +++ /dev/null @@ -1,23 +0,0 @@ -/* - * installation.cpp - * - * Created on: 26 Feb 2016 - * Author: pgess - */ - -#include "passmanager.h" -#include "gtest/gtest.h" -#include -using namespace std; -using namespace xreate; - -//TODO replace string identifiers with Atoms in order to hold position, etc -//TODO enable tests. Depends on context loop(test: Context.full_LoopContext) -TEST(Sprint1, DISABLED_test1){ - const string filenameSource("scripts/testspass/sprint1-Installation1.xreate"); - FILE* fileSource; - ASSERT_TRUE(fileSource = fopen(filenameSource.c_str(), "rb")); - - PassManager* man = PassManager::prepareForCode(fileSource); - man->run(); -} diff --git a/cpp/tests/pass-Logger.cpp b/cpp/tests/pass-Logger.cpp deleted file mode 100644 index e74577b..0000000 --- a/cpp/tests/pass-Logger.cpp +++ /dev/null @@ -1,86 +0,0 @@ -/* - * testLogging.cpp - * - * Created on: Jun 23, 2015 - * Author: pgess - */ - -#include -#include "gtest/gtest.h" -#include "passmanager.h" -#include "llvmlayer.h" -#include "Parser.h" - -using namespace std; -using namespace xreate; - -//TODO fix logger and enable tests. -TEST(LoggerPass, DISABLED_simpleInjection){ - PassManager* man = PassManager::prepareForCode("test= function():: int; entry{x = 2+8::int. return x}"); - - man->runWithoutCompilation(); - CompilePass* compiler = new CompilePass(man); - compiler->run(); - - compilation::FunctionUnit* fTest = compiler->getFunctionUnit(man->root->findFunction("test")); - ASSERT_NE(fTest, nullptr); - compilation::CodeScopeUnit* scopeUnitTest = fTest->getEntry(); - CodeScope* scopeTest = scopeUnitTest->scope; - Symbol symbX = scopeTest->findSymbol("x"); - TypeAnnotation typX = CodeScope::findDeclaration(symbX).type; - - llvm::Value* retRaw = scopeUnitTest->compile(); - llvm::BasicBlock& blockTestRaw = fTest->raw->getEntryBlock(); - - LLVMLayer* llvm = man->llvm; - //llvm->builder.SetInsertPoint(&blockTestRaw); - compilation::Context params{scopeUnitTest, fTest, compiler}; - - LoggerPass l(man); - l.inject(symbX, params); - - - llvm->initJit(); - int (*f)() = (int(*)()) llvm->getFunctionPointer(fTest->raw); - testing::internal::CaptureStdout(); - f(); - std::string&& output = testing::internal::GetCapturedStdout(); - EXPECT_STREQ("10\n", output.c_str()); -} - -TEST(LoggerPass, DISABLED_simpleInjection2){ - PassManager* man = PassManager::prepareForCode("test= function():: int; entry{x = 2+8::int; logging. x}"); - - man->runWithoutCompilation(); - CompilePass* compiler= new CompilePass(man); - compiler->run(); - - LoggerPass* logger = new LoggerPass(man); - logger->initDependencies(compiler); - logger->run(); - - man->llvm->initJit(); - man->llvm->print(); - int (*f)() = (int(*)()) man->llvm->getFunctionPointer(compiler->getEntryFunction()); - testing::internal::CaptureStdout(); - f(); - std::string&& output = testing::internal::GetCapturedStdout(); - EXPECT_STREQ("10\n", output.c_str()); -} - -TEST(LoggerPass, DISABLED_simpleInjection3){ - FILE* input = fopen("scripts/cases/log.xreate","r"); - assert(input); - - std::unique_ptr program(PassManager::prepareForCode(input)); - void* mainPtr = program->run(); - int (*main)() = (int (*)())(intptr_t)mainPtr; - - int answer = main(); - - fclose(input); -} - - - - diff --git a/cpp/tests/pointers.cpp b/cpp/tests/pointers.cpp deleted file mode 100644 index e2e05a9..0000000 --- a/cpp/tests/pointers.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "gtest/gtest.h" - -TEST(Pointers, DISABLED_validptr1){ - -} - -TEST(Pointers, DISABLED_localscopeptr1){ - -} diff --git a/cpp/tests/safety.cpp b/cpp/tests/safety.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/cpp/tests/testClangAPI.cpp b/cpp/tests/testClangAPI.cpp deleted file mode 100644 index a1d96ce..0000000 --- a/cpp/tests/testClangAPI.cpp +++ /dev/null @@ -1,197 +0,0 @@ -// -// Created by pgess on 4/16/15. -// - -#include "gtest/gtest.h" - -#include -#include "clang/Driver/Options.h" -#include "clang/AST/AST.h" -#include "clang/AST/ASTContext.h" -#include "clang/AST/ASTConsumer.h" -#include "clang/AST/RecursiveASTVisitor.h" -#include "clang/Frontend/ASTConsumers.h" -#include "clang/Frontend/FrontendActions.h" -#include "clang/Frontend/CompilerInstance.h" -#include "clang/Tooling/CommonOptionsParser.h" -#include "clang/Tooling/Tooling.h" -#include "clang/Rewrite/Core/Rewriter.h" -#include "clang/ASTMatchers/ASTMatchers.h" -#include "clang/ASTMatchers/ASTMatchFinder.h" -#include "clang/CodeGen/CodeGenAction.h" -#include "clang/CodeGen/CodeGenABITypes.h" -#include "llvm/IR/LLVMContext.h" -#include "clang/Basic/TargetInfo.h" -#include - -#include "../../vendors/clang-codegen-private-3.8/CodeGenModule.h" - - -using namespace std; -using namespace clang; -using namespace clang::driver; -using namespace clang::tooling; -using namespace clang::ast_matchers; -using namespace llvm; - -/* -class PrintFunctionsConsumer : public ASTConsumer { -public: - bool HandleTopLevelDecl(DeclGroupRef DG) override { - for (DeclGroupRef::iterator i = DG.begin(), e = DG.end(); i != e; ++i) { - const Decl *D = *i; - if (const NamedDecl *ND = dyn_cast(D)) - llvm::errs() << "top-level-decl: \"" << ND->getNameAsString() << "\"\n"; - } - - return true; - } -}; - -class PFAction : public ASTFrontendAction { -public: - virtual std::unique_ptr CreateASTConsumer(CompilerInstance &CI, StringRef file) { - return llvm::make_unique(); - } -}; -*/ - -class PrinterType : public MatchFinder::MatchCallback { -public : - virtual void run(const MatchFinder::MatchResult &Result) { - ASTContext* C = Result.Context; - llvm::Module* M = new llvm::Module("module1", llvm::getGlobalContext()); - if (const TypedefDecl* decl = Result.Nodes.getNodeAs("typename")) { - QualType Ty = decl->getUnderlyingType(); - - llvm::errs() << "<" << Ty.getAsString() << ">" ; - - M->setDataLayout(C->getTargetInfo().getDataLayoutString()); - CodeGen::CodeGenModule *CGM = new CodeGen::CodeGenModule( - *C, - *(new HeaderSearchOptions()), - *(new PreprocessorOptions()), - *(new CodeGenOptions()), - *M, - C->getDiagnostics()); - - llvm::Type *rawTy = CGM->getTypes().ConvertType(Ty); - - rawTy->dump(); - results.push_back(rawTy); - } - } - - std::vector results; -}; - -class PrinterFunction: public MatchFinder::MatchCallback { -public : - virtual void run(const MatchFinder::MatchResult &Result) { - if (const FunctionDecl* decl = Result.Nodes.getNodeAs("function")) { - QualType Ty = decl->getType(); - - llvm::errs() << "<" << Ty.getAsString() << ">" ; - ASTContext* C = Result.Context; - llvm::Module* M = new llvm::Module("module1", llvm::getGlobalContext()); - - CodeGen::CodeGenModule *CGM = new CodeGen::CodeGenModule( - *C, - *(new HeaderSearchOptions()), - *(new PreprocessorOptions()), - *(new CodeGenOptions()), - *M, - C->getDiagnostics()); - - llvm::Type *rawTy = CGM->getTypes().ConvertType(Ty); - - //const clang::FunctionType* Ty = decl->getType()->getAs(); - llvm::FunctionType* rawFuncTy = llvm::dyn_cast(rawTy); - rawFuncTy->dump(); - results.push_back(rawFuncTy); - - /* - llvm::Function* fDeclaration = llvm::Function::Create(rawFuncTy, llvm::GlobalValue::ExternalLinkage, "xxxx", M); - fDeclaration->dump(); - */ - } - } - - std::vector results; -}; - -//DEBT fix dependency on clasp/gcc version -vector argv = { - "-I/usr/include/libxml2" - ,"-I/usr/local/include" - ,"-I/usr/lib/llvm-3.6/lib/clang/3.6.0/include" - ,"-I/usr/include" -}; - -TEST(ClangAPI, testExternalType) -{ - - //,, "-I/usr/include/linux" -// "-cc1", "-emit-pch", "-disable-free", "-disable-llvm-verifier", "-mrelocation-model", "static", -// "-mthread-model", "posix", "-mdisable-fp-elim", "-fmath-errno", "-masm-verbose", -// "-mconstructor-aliases", "-munwind-tables", "-fuse-init-array", "-target-cpu", "x86-64", "-target-linker-version", "2.25", - //"-dwarf-column-info", "-resource-dir", "/usr/lib/llvm-3.7/bin/../lib/clang/3.7.0", - //"clang", "--", - - - /* - int argc= argv.size(); - - llvm::cl::OptionCategory cat("aaaa"); - LLVMInitializeNativeTarget(); - CommonOptionsParser op(argc, &*(argv.begin()), cat); - ClangTool tool(op.getCompilations(), op.getSourcePathList()); - */ - - auto matcherType = - typedefDecl(hasName("xmlNodePtr")).bind("typename"); - - MatchFinder finder; - PrinterType printer; - finder.addMatcher(matcherType, &printer); - - std::string code = (boost::format("#include \"%1%\"") % ("libxml/tree.h")).str(); - //runToolOnCodeWithArgs(newFrontendActionFactory(&finder).get()->create(), code, argv); - - std::unique_ptr ast = buildASTFromCodeWithArgs(code, argv); - ASTContext & context = ast->getASTContext(); - finder.matchAST(context); - - string signatureExpected = "%struct._xmlNode*"; - ASSERT_EQ(1, printer.results.size()); - - llvm::Type* tyActual = printer.results.at(0); - string strActual; - llvm::raw_string_ostream ss(strActual); - tyActual->print(ss); - ASSERT_EQ(signatureExpected, ss.str()); - - //int x = tool.run(newFrontendActionFactory(&finder).get()); -} - -TEST(ClangAPI, testExternalFunction){ - auto matcherType = functionDecl(hasName("arc4random")).bind("function"); - - MatchFinder finder; - PrinterFunction printer; - finder.addMatcher(matcherType, &printer); - - std::string code = (boost::format("#include \"%1%\"") % ("bsd/stdlib.h")).str(); - std::unique_ptr ast = buildASTFromCodeWithArgs(code, argv); - ASTContext & context = ast->getASTContext(); - finder.matchAST(context); - - string signatureExpected = "i32 ()"; - ASSERT_EQ(1, printer.results.size()); - - llvm::Type* tyActual = printer.results.at(0); - string strActual; - llvm::raw_string_ostream ss(strActual); - tyActual->print(ss); - ASSERT_EQ(signatureExpected, ss.str()); -} diff --git a/cpp/tests/testExploitation.cpp b/cpp/tests/testExploitation.cpp deleted file mode 100644 index 88cbc4d..0000000 --- a/cpp/tests/testExploitation.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ - -#include "passmanager.h" - -#include "gtest/gtest.h" -#include - -using namespace xreate; -using namespace std; - -//TEST(Exploitation, append1){ -// std::string program = -//R"CODE( -// -//test1 = function :: num; entry { -// appendA() + appendB() -//} -// -//appendA = function:: num { -// append("a", "/tmp/test1.txt") -//} -// -//appendB = function:: num { -// append("b", "/tmp/test1.txt") -//} -// -//append = function(msg::string, filename::string):: num -//{ -// f = initialize(filename):: FILE. -// -// fprintf(f, msg) -//} -// -//)CODE"; -// -// boost::scoped_ptr man(PassManager::prepareForCode(move(program))); -// man->runWithoutCompilation(); -//} - -#include -#include -#include "clasplayer.h" - -TEST(Exploitation, clasp1){ -} diff --git a/cpp/tests/testJson.cpp b/cpp/tests/testJson.cpp deleted file mode 100644 index 18e59cb..0000000 --- a/cpp/tests/testJson.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "utils.h" -#include "gtest/gtest.h" -using namespace std; -using namespace xreate; - -TEST(JSON, Test1){ - string key = Config::get("containers.id.implementations"); - EXPECT_EQ("impl_fulfill_cluster", key); -} diff --git a/cpp/tests/testLibXml2.cpp b/cpp/tests/testLibXml2.cpp deleted file mode 100644 index a095373..0000000 --- a/cpp/tests/testLibXml2.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// -// Created by pgess on 3/28/15. -// -#include -#include -#include - -using namespace std; - -TEST(libxml2, ReadXML) -{ - char* docname = "project/documentation.fodt"; - xmlDocPtr doc; - xmlNodePtr cur; - doc = xmlParseFile(docname); - if (doc == NULL ) { - fprintf(stderr,"Document not parsed successfully. \n"); - return; - } - cur = xmlDocGetRootElement(doc); - if (cur == NULL) { - fprintf(stderr,"empty document\n"); - xmlFreeDoc(doc); - return; - } - - cur = cur->xmlChildrenNode; - int count =0; - while (cur != NULL) { - printf("child: %s\n", cur->name); - cur = cur->next; - count ++; - } - - ASSERT_EQ(17, count); -} diff --git a/cpp/tests/upcoming.cpp b/cpp/tests/upcoming.cpp deleted file mode 100644 index fc248d1..0000000 --- a/cpp/tests/upcoming.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "gtest/gtest.h" - -TEST(AST, DISABLED_functionModification){ - //x = find single (...), where single - is a modification sign of a base function 'find' -} diff --git a/cpp/tests/xml.cpp b/cpp/tests/xml.cpp deleted file mode 100644 index 13b312a..0000000 --- a/cpp/tests/xml.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "passmanager.h" -#include "gtest/gtest.h" -#include - -using namespace xreate; - -TEST(Xml, DISABLED_Main){ - FILE* input = fopen("scripts/testspass/xml-test1.xreate", "r"); - assert(input); - - std::unique_ptr program(PassManager::prepareForCode(input)); - - void* mainPtr = program->run(); - int (*main)() = (int (*)())(intptr_t)mainPtr; - - int answer = main(); -} - -TEST(Xml, DISABLED_AliasTuple){ - -} - -TEST(Xml, DISABLED_FoldProtoEnhanced){ - -} - -TEST(Xml, DISABLED_TransfucPropagation){ - -} diff --git a/documentation/Aspects/Security and safety/pointers_safety.remarkup b/documentation/Aspects/Security and safety/pointers_safety.remarkup index 7d659c0..b601d91 100644 --- a/documentation/Aspects/Security and safety/pointers_safety.remarkup +++ b/documentation/Aspects/Security and safety/pointers_safety.remarkup @@ -1 +1,3 @@ -safety checks against invalid values (like validptr, etc) \ No newline at end of file +safety checks against invalid values (like validptr, etc) + +NOTE: there is unfinished query/ptrvalid.* in the file tree \ No newline at end of file diff --git a/documentation/Internal/todo.remarkup b/documentation/Internal/todo.remarkup deleted file mode 100644 index 37344cf..0000000 --- a/documentation/Internal/todo.remarkup +++ /dev/null @@ -1,2 +0,0 @@ -* syntax/switch: mention about a case body scope is a subscope (or a child) of a case parameters scope - (as of now expression resolution only, not for annotations resolution) diff --git a/documentation/development/files.remarkup b/documentation/development/files.remarkup index 40b54c5..7343513 100644 --- a/documentation/development/files.remarkup +++ b/documentation/development/files.remarkup @@ -1,116 +1,47 @@ |Filename|Description|Unittests| | ___ | ___ | ___ | -| analysis/cfagraph.*, /pass/cfapass.h | CFA | | -| analysis/dfagraph.*, | DFA | | -| analysis/DominatorsTreeAnalysisProvider.* | Dominators analysis || -| compilation/advanced.* | Additional constructions compilation -| compilation/containers.h | Containers support - - - - +| analysis/cfagraph.*, /pass/cfapass.* | CFA | tests/cfa.cpp | +| analysis/DominatorsTreeAnalysisProvider.* | Dominators analysis | tests/cfa.cpp| +| analysis/dfagraph.*, /pass/dfapass.* | DFA | tests/dfa.cpp | +| compilation/advanced.* | Additional constructions compilation || +| compilation/containers.*, query/containers.* | Containers support | tests/containers.cpp| +| query/context.* || CFA/Context support | tests/context.cpp | +| compilation/latecontextcompiler2.*, serialization/expressionserializer* | Late context support | tests/context.cpp, tests/ExpressionSerializer.cpp | +| pass/interpretationpass.*, compilation/targetinterpretation.* | DSL/Interpretation | tests/interpretation.cpp | +| pass/adhocpass.*| "Adhocs" feature support |tests/adhoc.cpp| +| src/ast.*, pass/compilepass.* | Main compilation routines | tests/compilation.cpp, tests/basic.cpp, tests/loops.cpp, tests/ast.cpp, tests/types.cpp| +| pass/loggerpass.* | Logging support || +| pass/rulespass.* | logic rules support || +| src/contextrule.h | Context rules support || +| src/clasplayer.* | Logic inference support || +| src/llvmlayer.* | Low level byte code compilation +| src/ExternLayer.* | Foreign Function Interface(FFI/C) support | tests/externc.cpp | +| src/passmanager.* | Manages analysis and compilation passes + + +==================================================================================================== analysis file:///private/prg/code/xreate/cpp/src/analysis/aux.h file:///private/prg/code/xreate/cpp/src/analysis/aux.cpp - compilation - file:///private/prg/code/xreate/cpp/src/ - file:///private/prg/code/xreate/cpp/src/ - file:///private/prg/code/xreate/cpp/src/compilation/latecontextcompiler.h - file:///private/prg/code/xreate/cpp/src/compilation/latecontextcompiler2.h - file:///private/prg/code/xreate/cpp/src/compilation/targetinterpretation.h file:///private/prg/code/xreate/cpp/src/compilation/targets.h file:///private/prg/code/xreate/cpp/src/compilation/transformations.h - file:///private/prg/code/xreate/cpp/src/compilation/advanced.cpp - file:///private/prg/code/xreate/cpp/src/compilation/containers.cpp - file:///private/prg/code/xreate/cpp/src/compilation/latecontextcompiler.cpp - file:///private/prg/code/xreate/cpp/src/compilation/latecontextcompiler2.cpp - file:///private/prg/code/xreate/cpp/src/compilation/targetinterpretation.cpp file:///private/prg/code/xreate/cpp/src/compilation/transformations.cpp pass/ file:///private/prg/code/xreate/cpp/src/pass/abstractpass.h - file:///private/prg/code/xreate/cpp/src/pass/adhocpass.h - file:///private/prg/code/xreate/cpp/src/pass/cfapass.h - file:///private/prg/code/xreate/cpp/src/pass/compilepass.h - file:///private/prg/code/xreate/cpp/src/pass/dfapass.h - file:///private/prg/code/xreate/cpp/src/pass/environmenttestspass.h - file:///private/prg/code/xreate/cpp/src/pass/interpretationpass.h - file:///private/prg/code/xreate/cpp/src/pass/loggerpass.h - file:///private/prg/code/xreate/cpp/src/pass/rulespass.h file:///private/prg/code/xreate/cpp/src/pass/abstractpass.cpp - file:///private/prg/code/xreate/cpp/src/pass/adhocpass.cpp - file:///private/prg/code/xreate/cpp/src/pass/cfapass.cpp - file:///private/prg/code/xreate/cpp/src/pass/compilepass.cpp - file:///private/prg/code/xreate/cpp/src/pass/dfapass.cpp - file:///private/prg/code/xreate/cpp/src/pass/environmenttestspass.cpp - file:///private/prg/code/xreate/cpp/src/pass/interpretationpass.cpp - file:///private/prg/code/xreate/cpp/src/pass/loggerpass.cpp - file:///private/prg/code/xreate/cpp/src/pass/rulespass.cpp - -query: - file:///private/prg/code/xreate/cpp/src/query/containers.h - file:///private/prg/code/xreate/cpp/src/query/context.h - file:///private/prg/code/xreate/cpp/src/query/ptrvalid.h - file:///private/prg/code/xreate/cpp/src/query/containers.cpp - file:///private/prg/code/xreate/cpp/src/query/context.cpp - file:///private/prg/code/xreate/cpp/src/query/ptrvalid.cpp -serialization - file:///private/prg/code/xreate/cpp/src/serialization/expressionserializer.h - file:///private/prg/code/xreate/cpp/src/serialization/expressionserializer2.h - file:///private/prg/code/xreate/cpp/src/serialization/expressionserializer.cpp - file:///private/prg/code/xreate/cpp/src/serialization/expressionserializer2.cpp - +query: src - file:///private/prg/code/xreate/cpp/src/ast.h - file:///private/prg/code/xreate/cpp/src/attachments.h - file:///private/prg/code/xreate/cpp/src/clasplayer.h - file:///private/prg/code/xreate/cpp/src/contextrule.h - file:///private/prg/code/xreate/cpp/src/ExternLayer.h - file:///private/prg/code/xreate/cpp/src/llvmlayer.h - file:///private/prg/code/xreate/cpp/src/passmanager.h + src/attachments.* file:///private/prg/code/xreate/cpp/src/serialization.h file:///private/prg/code/xreate/cpp/src/utils.h - file:///private/prg/code/xreate/cpp/src/ast.cpp - file:///private/prg/code/xreate/cpp/src/attachments.cpp - file:///private/prg/code/xreate/cpp/src/clasplayer.cpp - file:///private/prg/code/xreate/cpp/src/contextrule.cpp - file:///private/prg/code/xreate/cpp/src/ExternLayer.cpp - file:///private/prg/code/xreate/cpp/src/llvmlayer.cpp - file:///private/prg/code/xreate/cpp/src/passmanager.cpp - file:///private/prg/code/xreate/cpp/src/utils.cpp - file:///private/prg/code/xreate/cpp/src/CMakeLists.txt tests - file:///private/prg/code/xreate/cpp/tests/testClangAPI.h - file:///private/prg/code/xreate/cpp/tests/adhoc-skipdetection.cpp - file:///private/prg/code/xreate/cpp/tests/adhoc.cpp - file:///private/prg/code/xreate/cpp/tests/ast.cpp - file:///private/prg/code/xreate/cpp/tests/basic.cpp - file:///private/prg/code/xreate/cpp/tests/cfa.cpp - file:///private/prg/code/xreate/cpp/tests/compilation.cpp - file:///private/prg/code/xreate/cpp/tests/containers.cpp - file:///private/prg/code/xreate/cpp/tests/context.cpp - file:///private/prg/code/xreate/cpp/tests/dfa.cpp - file:///private/prg/code/xreate/cpp/tests/diagnostic-messages.cpp - file:///private/prg/code/xreate/cpp/tests/ExpressionSerializer.cpp - file:///private/prg/code/xreate/cpp/tests/externc.cpp - file:///private/prg/code/xreate/cpp/tests/installation.cpp - file:///private/prg/code/xreate/cpp/tests/interpretation.cpp - file:///private/prg/code/xreate/cpp/tests/loops.cpp - file:///private/prg/code/xreate/cpp/tests/main.cpp - file:///private/prg/code/xreate/cpp/tests/pass-Logger.cpp - file:///private/prg/code/xreate/cpp/tests/pointers.cpp - file:///private/prg/code/xreate/cpp/tests/safety.cpp file:///private/prg/code/xreate/cpp/tests/testClangAPI.cpp - file:///private/prg/code/xreate/cpp/tests/testExploitation.cpp file:///private/prg/code/xreate/cpp/tests/testJson.cpp file:///private/prg/code/xreate/cpp/tests/testLibXml2.cpp - file:///private/prg/code/xreate/cpp/tests/types.cpp - file:///private/prg/code/xreate/cpp/tests/upcoming.cpp - file:///private/prg/code/xreate/cpp/tests/xml.cpp - file:///private/prg/code/xreate/cpp/tests/CMakeLists.txt - \ No newline at end of file +