| Index: src/sksl/ast/SkSLASTTernaryExpression.h | 
| diff --git a/src/sksl/ast/SkSLASTTernaryExpression.h b/src/sksl/ast/SkSLASTTernaryExpression.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..20b827a049cc1919e8d7ff90ae04514cfbcb7a21 | 
| --- /dev/null | 
| +++ b/src/sksl/ast/SkSLASTTernaryExpression.h | 
| @@ -0,0 +1,41 @@ | 
| +/* | 
| + * 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_ASTTERNARYEXPRESSION | 
| +#define SKSL_ASTTERNARYEXPRESSION | 
| + | 
| +#include "SkSLASTExpression.h" | 
| + | 
| +namespace SkSL { | 
| + | 
| +/** | 
| + * A ternary expression (test ? ifTrue : ifFalse). | 
| + */ | 
| +struct ASTTernaryExpression : public ASTExpression { | 
| +    ASTTernaryExpression(std::unique_ptr<ASTExpression> test, | 
| +                         std::unique_ptr<ASTExpression> ifTrue, | 
| +                         std::unique_ptr<ASTExpression> ifFalse) | 
| +    : INHERITED(test->fPosition, kTernary_Kind) | 
| +    , fTest(std::move(test)) | 
| +    , fIfTrue(std::move(ifTrue)) | 
| +    , fIfFalse(std::move(ifFalse)) {} | 
| + | 
| +    std::string description() const override { | 
| +        return "(" + fTest->description() + " ? " + fIfTrue->description() + " : " + | 
| +               fIfFalse->description() + ")"; | 
| +    } | 
| + | 
| +    const std::unique_ptr<ASTExpression> fTest; | 
| +    const std::unique_ptr<ASTExpression> fIfTrue; | 
| +    const std::unique_ptr<ASTExpression> fIfFalse; | 
| + | 
| +    typedef ASTExpression INHERITED; | 
| +}; | 
| + | 
| +} // namespace | 
| + | 
| +#endif | 
|  |