blob: 2bc565712e41925c79311342a1132c0969f23bcd [file] [log] [blame]
ethannicholasb3058bd2016-07-01 08:22:01 -07001/*
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_INTLITERAL
9#define SKSL_INTLITERAL
10
11#include "SkSLExpression.h"
12
13namespace SkSL {
14
15/**
16 * A literal integer.
17 */
18struct IntLiteral : public Expression {
19 // FIXME: we will need to revisit this if/when we add full support for both signed and unsigned
20 // 64-bit integers, but for right now an int64_t will hold every value we care about
fmalitad214d6a2016-09-30 08:05:24 -070021 IntLiteral(const Context& context, Position position, int64_t value)
22 : INHERITED(position, kIntLiteral_Kind, *context.fInt_Type)
ethannicholasb3058bd2016-07-01 08:22:01 -070023 , fValue(value) {}
24
25 virtual std::string description() const override {
26 return to_string(fValue);
27 }
28
29 bool isConstant() const override {
ethannicholasf789b382016-08-03 12:43:36 -070030 return true;
ethannicholasb3058bd2016-07-01 08:22:01 -070031 }
32
33 const int64_t fValue;
34
35 typedef Expression INHERITED;
36};
37
38} // namespace
39
40#endif