/* * Copyright 2016 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SKSL_ASTBLOCK #define SKSL_ASTBLOCK #include "SkSLASTStatement.h" namespace SkSL { /** * Represents a curly-braced block of statements. */ struct ASTBlock : public ASTStatement { ASTBlock(int offset, std::vector<std::unique_ptr<ASTStatement>> statements) : INHERITED(offset, kBlock_Kind) , fStatements(std::move(statements)) {} String description() const override { String result("{"); for (size_t i = 0; i < fStatements.size(); i++) { result += "\n"; result += fStatements[i]->description(); } result += "\n}\n"; return result; } const std::vector<std::unique_ptr<ASTStatement>> fStatements; typedef ASTStatement INHERITED; }; } // namespace #endif