P4C
The P4 Compiler
Loading...
Searching...
No Matches
constantParsing.h
1/*
2 * SPDX-FileCopyrightText: 2013 Barefoot Networks, Inc.
3 * Copyright 2013-present Barefoot Networks, Inc.
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
8#ifndef FRONTENDS_COMMON_CONSTANTPARSING_H_
9#define FRONTENDS_COMMON_CONSTANTPARSING_H_
10
11#include "lib/cstring.h"
12
13namespace P4::IR {
14class Constant;
15} // namespace P4::IR
16
17namespace P4::Util {
18class SourceInfo;
19} // namespace P4::Util
20
21namespace P4 {
22
23class JSONGenerator;
24class JSONLoader;
25
60 cstring text;
61 unsigned skip;
62 unsigned base;
63 bool hasWidth;
64 void toJSON(JSONGenerator &) const;
65 static UnparsedConstant fromJSON(JSONLoader &);
66};
67
68std::ostream &operator<<(std::ostream &out, const UnparsedConstant &constant);
69
70bool operator<(const UnparsedConstant &a, const UnparsedConstant &b);
71
80IR::Constant *parseConstant(const Util::SourceInfo &srcInfo, const UnparsedConstant &constant,
81 long defaultValue);
82
87int parseConstantChecked(const Util::SourceInfo &srcInfo, const UnparsedConstant &constant);
88
89} // namespace P4
90
91#endif /* FRONTENDS_COMMON_CONSTANTPARSING_H_ */
Definition json_generator.h:30
Definition json_loader.h:32
Definition source_file.h:123
Definition cstring.h:76
Definition constantParsing.h:13
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:13
IR::Constant * parseConstant(const Util::SourceInfo &srcInfo, const UnparsedConstant &constant, long defaultValue)
Definition constantParsing.cpp:70
int parseConstantChecked(const Util::SourceInfo &srcInfo, const UnparsedConstant &constant)
Definition constantParsing.cpp:83
Definition constantParsing.h:59
void toJSON(JSONGenerator &) const
If true, a bitwidth and separator are present.
Definition constantParsing.cpp:28
unsigned base
An ignored prefix of the numeric constant (e.g. '0x').
Definition constantParsing.h:62
unsigned skip
Raw P4 text which was recognized as a numeric constant.
Definition constantParsing.h:61
bool hasWidth
The base in which the constant is expressed.
Definition constantParsing.h:63