Line data Source code
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 :
13 : namespace SkSL {
14 :
15 : /**
16 : * Represents a curly-braced block of statements.
17 : */
18 0 : struct ASTBlock : public ASTStatement {
19 0 : ASTBlock(Position position, std::vector<std::unique_ptr<ASTStatement>> statements)
20 0 : : INHERITED(position, kBlock_Kind)
21 0 : , fStatements(std::move(statements)) {}
22 :
23 0 : String description() const override {
24 0 : String result("{");
25 0 : for (size_t i = 0; i < fStatements.size(); i++) {
26 0 : result += "\n";
27 0 : result += fStatements[i]->description();
28 : }
29 0 : result += "\n}\n";
30 0 : 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
|