P4C
The P4 Compiler
Loading...
Searching...
No Matches
eliminateTypedefs.h
1
#ifndef MIDEND_ELIMINATETYPEDEFS_H_
2
#define MIDEND_ELIMINATETYPEDEFS_H_
3
4
#include "frontends/p4/typeChecking/typeChecker.h"
5
6
namespace
P4
{
7
13
class
DoReplaceTypedef final :
public
Transform
{
14
const
ReferenceMap
*refMap;
15
16
public
:
17
explicit
DoReplaceTypedef(
const
ReferenceMap
*refMap) : refMap(refMap) {}
18
const
IR::Type *preorder(IR::Type_Name *type)
override
;
19
};
20
21
class
EliminateTypedef final :
public
PassManager {
22
public
:
23
EliminateTypedef(
ReferenceMap
*refMap,
TypeMap
*typeMap,
TypeChecking
*typeChecking =
nullptr
) {
24
if
(!typeChecking) typeChecking =
new
TypeChecking
(refMap, typeMap);
25
passes.push_back(typeChecking);
26
passes.push_back(
new
DoReplaceTypedef
(refMap));
27
passes.push_back(
new
TypeChecking
(refMap, typeMap,
true
));
28
setName(
"EliminateTypedefs"
);
29
}
30
};
31
32
}
// namespace P4
33
34
#endif
/* MIDEND_ELIMINATETYPEDEFS_H_ */
P4::DoReplaceTypedef
Definition
eliminateTypedefs.h:13
P4::ReferenceMap
Class used to encode maps from paths to declarations.
Definition
referenceMap.h:66
P4::Transform
Definition
visitor.h:424
P4::TypeChecking
Definition
typeChecker.h:55
P4::TypeMap
Definition
typeMap.h:41
P4
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition
applyOptionsPragmas.cpp:24
midend
eliminateTypedefs.h
Generated by
1.13.2