dawn-cmake/src/ast/int_literal_expression.h
Ben Clayton 5c9a80b6f6 ast: Add 'Expression' suffix to literals (2/2)
Literals are now expressions, so in keeping with all the other
expression types, suffix the class name with Expression.

I'm not overly keen on requiring everything to have an Expression
suffix, but consistency is better than personal preference.

Note: this should have been part of 30848b6, but I managed to drop
this change instead of squashing it. Opps.

Bug: tint:888
Change-Id: Idfaf96abe165a6bf5028e60a160e7408aa2bf9db
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/68943
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-11-10 19:23:07 +00:00

46 lines
1.4 KiB
C++

// Copyright 2020 The Tint Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef SRC_AST_INT_LITERAL_EXPRESSION_H_
#define SRC_AST_INT_LITERAL_EXPRESSION_H_
#include "src/ast/literal_expression.h"
namespace tint {
namespace ast {
/// An integer literal. This could be either signed or unsigned.
class IntLiteralExpression
: public Castable<IntLiteralExpression, LiteralExpression> {
public:
~IntLiteralExpression() override;
/// @returns the literal value as a u32
virtual uint32_t ValueAsU32() const = 0;
/// @returns the literal value as an i32
int32_t ValueAsI32() const { return static_cast<int32_t>(ValueAsU32()); }
protected:
/// Constructor
/// @param pid the identifier of the program that owns this node
/// @param src the source of this node
IntLiteralExpression(ProgramID pid, const Source& src);
}; // namespace ast
} // namespace ast
} // namespace tint
#endif // SRC_AST_INT_LITERAL_EXPRESSION_H_