P4C
The P4 Compiler
Loading...
Searching...
No Matches
bmv2/common/deparser.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 BACKENDS_BMV2_COMMON_DEPARSER_H_
9
#define BACKENDS_BMV2_COMMON_DEPARSER_H_
10
11
#include "backend.h"
12
#include "expression.h"
13
#include "frontends/common/resolveReferences/referenceMap.h"
14
#include "frontends/p4/typeMap.h"
15
#include "ir/ir.h"
16
#include "lib/json.h"
17
18
namespace
P4::BMV2
{
19
20
class
DeparserConverter :
public
Inspector {
21
ConversionContext
*ctxt;
22
cstring
name;
23
P4::P4CoreLibrary
&corelib;
24
25
protected
:
26
Util::IJson
*convertDeparser(
const
IR::P4Control *ctrl);
27
void
convertDeparserBody(
const
IR::Vector<IR::StatOrDecl>
*body,
Util::JsonArray
*order,
28
Util::JsonArray
*primitives);
29
30
public
:
31
bool
preorder(
const
IR::P4Control *ctrl)
override
;
32
33
explicit
DeparserConverter(
ConversionContext
*ctxt,
cstring
name =
"deparser"
_cs)
34
: ctxt(ctxt), name(name), corelib(P4::P4CoreLibrary::instance()) {
35
setName(
"DeparserConverter"
);
36
}
37
};
38
39
}
// namespace P4::BMV2
40
41
#endif
/* BACKENDS_BMV2_COMMON_DEPARSER_H_ */
P4::IR::Vector
Definition
ir/vector.h:59
P4::P4CoreLibrary
Definition
coreLibrary.h:103
P4::Util::IJson
Definition
lib/json.h:41
P4::Util::JsonArray
Definition
lib/json.h:128
P4::cstring
Definition
cstring.h:85
P4::BMV2
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition
action.cpp:9
P4::BMV2::ConversionContext
Definition
bmv2/common/helpers.h:288
backends
bmv2
common
deparser.h
Generated by
1.13.2