abstractpass.h
No OneTemporary

File Metadata

Created
Wed, Jul 8, 6:44 AM

abstractpass.h

#ifndef ABSTRACTPASS_H
#define ABSTRACTPASS_H
#include "passmanager.h"
namespace xreate
{
struct PassContext
{
CodeScope* scope = 0;
ManagedFnPtr function;
ManagedRulePtr rule;
std::string varDecl;
PassContext()
{}
~PassContext(){}
};
class AbstractPass
{
public:
AbstractPass(PassManager* man);
virtual void run();
virtual void finish();
virtual void processFnCall(ManagedFnPtr function, PassContext context);
virtual void process(ManagedFnPtr function);
virtual void process(ManagedRulePtr rule);
virtual void process(CodeScope* scope, PassContext context);
virtual void process(const Expression& expression, PassContext context, const std::string& varDecl="");
protected:
PassManager* man;
};
}
#endif

Event Timeline