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 "../SkSLPosition.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 { 20 IRNode(Position position) 21 : fPosition(position) {} 22 23 virtual ~IRNode() {} 24 25 virtual SkString description() const = 0; 26 27 const Position fPosition; 28 }; 29 30 } // namespace 31 32 #endif 33