package php.runtime.common;
import php.runtime.env.CompileScope;
import php.runtime.env.Context;
import php.runtime.env.Environment;
import php.runtime.reflection.ModuleEntity;
abstract public class AbstractCompiler {
protected final Environment environment;
protected final CompileScope scope;
protected final Context context;
public AbstractCompiler(Environment environment, Context context){
this.context = context;
this.scope = environment.getScope();
this.environment = environment;
}
public Context getContext() {
return context;
}
public CompileScope getScope() {
return scope;
}
abstract public ModuleEntity compile(boolean autoRegister);
public ModuleEntity compile(){
return compile(true);
}
public Environment getEnvironment() {
return environment;
}
}