| 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(std::move(type)) {} | 
|  | 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 | 
|---|