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_ASTBLOCK 9#define SKSL_ASTBLOCK 10 11#include "SkSLASTStatement.h" 12 13namespace SkSL { 14 15/** 16 * Represents a curly-braced block of statements. 17 */ 18struct ASTBlock : public ASTStatement { 19 ASTBlock(int offset, std::vector<std::unique_ptr<ASTStatement>> statements) 20 : INHERITED(offset, kBlock_Kind) 21 , fStatements(std::move(statements)) {} 22 23 String description() const override { 24 String result("{"); 25 for (size_t i = 0; i < fStatements.size(); i++) { 26 result += "\n"; 27 result += fStatements[i]->description(); 28 } 29 result += "\n}\n"; 30 return result; 31 } 32 33 const std::vector<std::unique_ptr<ASTStatement>> fStatements; 34 35 typedef ASTStatement INHERITED; 36}; 37 38} // namespace 39 40#endif 41