Chromium Code Reviews| Index: src/sksl/ir/SkSLExpression.h |
| diff --git a/src/sksl/ir/SkSLExpression.h b/src/sksl/ir/SkSLExpression.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a45f1856b940283d53022f051a04475fb2ac4634 |
| --- /dev/null |
| +++ b/src/sksl/ir/SkSLExpression.h |
| @@ -0,0 +1,55 @@ |
| +/* |
| + * Copyright 2016 Google Inc. |
| + * |
| + * Use of this source code is governed by a BSD-style license that can be |
| + * found in the LICENSE file. |
| + */ |
| + |
| +#ifndef SKSL_EXPRESSION |
| +#define SKSL_EXPRESSION |
| + |
| +#include "SkSLIRNode.h" |
| +#include "SkSLType.h" |
| + |
| +namespace SkSL { |
| + |
| +/** |
| + * Abstract supertype of all expressions. |
| + */ |
| +struct Expression : public IRNode { |
| + enum Kind { |
| + kBinary_Kind, |
| + kBoolLiteral_Kind, |
| + kConstructor_Kind, |
| + kIntLiteral_Kind, |
| + kFieldAccess_Kind, |
| + kFloatLiteral_Kind, |
| + kFunctionReference_Kind, |
| + kFunctionCall_Kind, |
| + kIndex_Kind, |
| + kPrefix_Kind, |
| + kPostfix_Kind, |
| + kSwizzle_Kind, |
| + kVariableReference_Kind, |
| + kTernary_Kind, |
| + kTypeReference_Kind, |
| + }; |
| + |
| + Expression(Position position, Kind kind, std::shared_ptr<Type> type) |
| + : INHERITED(position) |
| + , fKind(kind) |
| + , fType(type) {} |
|
dogben
2016/06/21 21:52:50
std::move
|
| + |
| + virtual bool isConstant() const { |
| + return false; |
| + } |
| + |
| + const Kind fKind; |
| + const std::shared_ptr<Type> fType; |
| + |
| + typedef IRNode INHERITED; |
| +}; |
| + |
| +} // namespace |
| + |
| +#endif |