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_BREAKSTATEMENT 9 #define SKSL_BREAKSTATEMENT 10 11 #include "include/private/SkSLStatement.h" 12 #include "src/sksl/ir/SkSLExpression.h" 13 14 namespace SkSL { 15 16 /** 17 * A 'break' statement. 18 */ 19 class BreakStatement final : public Statement { 20 public: 21 static constexpr Kind kStatementKind = Kind::kBreak; 22 BreakStatement(int offset)23 BreakStatement(int offset) 24 : INHERITED(offset, kStatementKind) {} 25 Make(int offset)26 static std::unique_ptr<Statement> Make(int offset) { 27 return std::make_unique<BreakStatement>(offset); 28 } 29 clone()30 std::unique_ptr<Statement> clone() const override { 31 return std::make_unique<BreakStatement>(fOffset); 32 } 33 description()34 String description() const override { 35 return String("break;"); 36 } 37 38 private: 39 using INHERITED = Statement; 40 }; 41 42 } // namespace SkSL 43 44 #endif 45