module ppsl.compiler;
import ppsl.shader;

public abstract class Compiler {
	public abstract PPSLShader CompileSingle(string PPSLCode);
	public PPSLShaderCollection CompileCollection(string[] Code) {
		PPSLShaderCollection collection = new PPSLShaderCollection();
		foreach (string shader; Code) {
			collection.Add(CompileSingle(shader));
		}
		return collection;
	}
	public abstract OutputShader Transpile(PPSLShaderCollection collection);
}