OLD | NEW |
---|---|
(Empty) | |
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_FORSTATEMENT | |
9 #define SKSL_FORSTATEMENT | |
10 | |
11 #include "SkSLExpression.h" | |
12 #include "SkSLStatement.h" | |
13 | |
14 namespace SkSL { | |
15 | |
16 /** | |
17 * A 'for' statement. | |
18 */ | |
19 struct ForStatement : public Statement { | |
20 ForStatement(Position position, std::unique_ptr<Statement> initializer, | |
21 std::unique_ptr<Expression> test, std::unique_ptr<Expression> n ext, | |
22 std::unique_ptr<Statement> statement) | |
23 : INHERITED(position, kFor_Kind) | |
24 , fInitializer(std::move(initializer)) | |
25 , fTest(std::move(test)) | |
26 , fNext(std::move(next)) | |
27 , fStatement(std::move(statement)) {} | |
28 | |
29 std::string description() const override { | |
30 std::string result = "for ("; | |
31 if (fInitializer) { | |
32 result += fInitializer->description(); | |
33 } | |
34 result += " "; | |
dogben
2016/06/22 17:43:57
;
ethannicholas
2016/06/24 21:23:09
No, the initializer is a statement and thus alread
| |
35 if (fTest) { | |
36 result += fTest->description(); | |
37 } | |
38 result += "; "; | |
39 if (fNext) { | |
40 result += fNext->description(); | |
41 } | |
42 result += ") " + fStatement->description(); | |
43 return result; | |
44 } | |
45 | |
46 const std::unique_ptr<Statement> fInitializer; | |
47 const std::unique_ptr<Expression> fTest; | |
48 const std::unique_ptr<Expression> fNext; | |
49 const std::unique_ptr<Statement> fStatement; | |
50 | |
51 typedef Statement INHERITED; | |
52 }; | |
53 | |
54 } // namespace | |
55 | |
56 #endif | |
OLD | NEW |