blob: 3ecb4ba50e7e3c60c2099e870646b383270c7a56 [file] [log] [blame]
* Copyright 2016 Google Inc.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
#include "include/private/base/SkAssert.h"
namespace SkSL {
class BuiltinTypes;
class ErrorReporter;
struct Module;
struct ProgramConfig;
class SymbolTable;
* Contains compiler-wide objects and state.
class Context {
Context(const BuiltinTypes& types, ErrorReporter& errors);
// The Context holds a reference to all of the built-in types.
const BuiltinTypes& fTypes;
// The Context holds a pointer to the configuration of the program being compiled.
ProgramConfig* fConfig = nullptr;
// The Context holds a pointer to our error reporter.
ErrorReporter* fErrors;
void setErrorReporter(ErrorReporter* e) {
fErrors = e;
// The Context holds a pointer to our module with built-in declarations.
const Module* fModule = nullptr;
// This is the current symbol table of the code we are processing, and therefore changes during
// compilation.
SymbolTable* fSymbolTable = nullptr;
} // namespace SkSL