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_EXPRESSION | |
9 #define SKSL_EXPRESSION | |
10 | |
11 #include "SkSLIRNode.h" | |
12 #include "SkSLType.h" | |
13 | |
14 namespace SkSL { | |
15 | |
16 /** | |
17 * Abstract supertype of all expressions. | |
18 */ | |
19 struct Expression : public IRNode { | |
20 enum Kind { | |
21 kBinary_Kind, | |
22 kBoolLiteral_Kind, | |
23 kConstructor_Kind, | |
24 kIntLiteral_Kind, | |
25 kFieldAccess_Kind, | |
26 kFloatLiteral_Kind, | |
27 kFunctionReference_Kind, | |
28 kFunctionCall_Kind, | |
29 kIndex_Kind, | |
30 kPrefix_Kind, | |
31 kPostfix_Kind, | |
32 kSwizzle_Kind, | |
33 kVariableReference_Kind, | |
34 kTernary_Kind, | |
35 kTypeReference_Kind, | |
36 }; | |
37 | |
38 Expression(Position position, Kind kind, std::shared_ptr<Type> type) | |
39 : INHERITED(position) | |
40 , fKind(kind) | |
41 , fType(type) {} | |
dogben
2016/06/21 21:52:50
std::move
| |
42 | |
43 virtual bool isConstant() const { | |
44 return false; | |
45 } | |
46 | |
47 const Kind fKind; | |
48 const std::shared_ptr<Type> fType; | |
49 | |
50 typedef IRNode INHERITED; | |
51 }; | |
52 | |
53 } // namespace | |
54 | |
55 #endif | |
OLD | NEW |