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_ASTFORSTATEMENT | |
9 #define SKSL_ASTFORSTATEMENT | |
10 | |
11 #include "SkSLASTStatement.h" | |
12 | |
13 namespace SkSL { | |
14 | |
15 /** | |
16 * A 'for' loop. | |
17 */ | |
18 struct ASTForStatement : public ASTStatement { | |
19 ASTForStatement(Position position, std::unique_ptr<ASTStatement> initializer , | |
20 std::unique_ptr<ASTExpression> test, std::unique_ptr<ASTExpre ssion> next, | |
dogben
2016/06/20 16:23:18
Should next be a statement?
ethannicholas
2016/06/20 17:45:49
This is for the third entry in a for loop ('for (i
mtklein
2016/06/20 18:25:25
It helps me to remember that many things you think
dogben
2016/06/20 18:26:26
Ok, I see that in the parser, e.g. "i += 2" become
| |
21 std::unique_ptr<ASTStatement> statement) | |
22 : INHERITED(position, kFor_Kind) | |
23 , fInitializer(std::move(initializer)) | |
24 , fTest(std::move(test)) | |
25 , fNext(std::move(next)) | |
26 , fStatement(std::move(statement)) {} | |
27 | |
28 std::string description() const override { | |
29 std::string result = std::string("for ("); | |
dogben
2016/06/20 16:23:18
uber-nit: "std::string(" unnecessary
| |
30 if (fInitializer) { | |
31 result.append(fInitializer->description()); | |
dogben
2016/06/20 16:23:18
uber-nit: elsewhere in this CL, you use += rather
| |
32 } | |
33 result.append(" "); | |
dogben
2016/06/20 16:23:18
;
| |
34 if (fTest) { | |
35 result.append(fTest->description()); | |
36 } | |
37 result.append("; "); | |
38 if (fNext) { | |
39 result.append(fNext->description()); | |
40 } | |
41 return result + ") " + fStatement->description(); | |
dogben
2016/06/20 16:23:18
nit: Is the compiler smart enough to append to res
| |
42 } | |
43 | |
44 const std::unique_ptr<ASTStatement> fInitializer; | |
45 const std::unique_ptr<ASTExpression> fTest; | |
46 const std::unique_ptr<ASTExpression> fNext; | |
47 const std::unique_ptr<ASTStatement> fStatement; | |
48 | |
49 typedef ASTStatement INHERITED; | |
50 }; | |
51 | |
52 } // namespace | |
53 | |
54 #endif | |
OLD | NEW |