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_FLOATLITERAL 9 #define SKSL_FLOATLITERAL 10 11 #include "SkSLContext.h" 12 #include "SkSLExpression.h" 13 14 namespace SkSL { 15 16 /** 17 * A literal floating point number. 18 */ 19 struct FloatLiteral : public Expression { FloatLiteralFloatLiteral20 FloatLiteral(const Context& context, Position position, double value) 21 : INHERITED(position, kFloatLiteral_Kind, *context.fFloat_Type) 22 , fValue(value) {} 23 descriptionFloatLiteral24 virtual SkString description() const override { 25 return to_string(fValue); 26 } 27 isConstantFloatLiteral28 bool isConstant() const override { 29 return true; 30 } 31 32 const double fValue; 33 34 typedef Expression INHERITED; 35 }; 36 37 } // namespace 38 39 #endif 40