/* * Copyright 2016 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SKSL_CODEGENERATOR #define SKSL_CODEGENERATOR #include "ir/SkSLProgram.h" #include "SkSLOutputStream.h" namespace SkSL { /** * Abstract superclass of all code generators, which take a Program as input and produce code as * output. */ class CodeGenerator { public: CodeGenerator(const Program* program, ErrorReporter* errors, OutputStream* out) : fProgram(*program) , fErrors(*errors) , fOut(out) {} virtual ~CodeGenerator() {} virtual bool generateCode() = 0; protected: const Program& fProgram; ErrorReporter& fErrors; OutputStream* fOut; }; } // namespace #endif