1 /* 2 * Copyright 2016 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef SKSL_IRNODE 9 #define SKSL_IRNODE 10 11 #include "../SkSLLexer.h" 12 13 namespace SkSL { 14 15 /** 16 * Represents a node in the intermediate representation (IR) tree. The IR is a fully-resolved 17 * version of the program (all types determined, everything validated), ready for code generation. 18 */ 19 struct IRNode { IRNodeIRNode20 IRNode(int offset) 21 : fOffset(offset) {} 22 ~IRNodeIRNode23 virtual ~IRNode() {} 24 25 virtual String description() const = 0; 26 27 // character offset of this element within the program being compiled, for error reporting 28 // purposes 29 int fOffset; 30 }; 31 32 } // namespace 33 34 #endif 35