passmanager.h
No OneTemporary

File Metadata

Created
Wed, Jul 8, 7:43 AM

passmanager.h

#ifndef PASSMANAGER_H
#define PASSMANAGER_H
#include "Scanner.h"
#include <string>
#include <map>
namespace xreate {
class AbstractPassBase;
class ClaspLayer;
class LLVMLayer;
class AST;
class PassManager
{
public:
~PassManager();
void* run();
void runWithoutCompilation();
void registerPass(AbstractPassBase* pass, AbstractPassBase* prerequisite=nullptr);
static PassManager* prepareForCode(std::string&& code);
static PassManager* prepareForCode(Scanner& scanner);
ClaspLayer* clasp;
LLVMLayer* llvm;
AST* root;
private:
//typedef std::multimap<PassFilter, ASTPass*> FILTERS_STORAGE;
//FILTERS_STORAGE __filters;
std::multimap<AbstractPassBase*, AbstractPassBase*> __passes;
}; }
#endif

Event Timeline