17#ifndef MIDEND_ORDERARGUMENTS_H_
18#define MIDEND_ORDERARGUMENTS_H_
20#include "frontends/common/resolveReferences/resolveReferences.h"
21#include "frontends/p4/typeChecking/typeChecker.h"
22#include "frontends/p4/typeMap.h"
36 DoOrderArguments(
ReferenceMap *refMap,
TypeMap *typeMap) : refMap(refMap), typeMap(typeMap) {
39 setName(
"DoOrderArguments");
42 const IR::Node *postorder(IR::MethodCallExpression *expression)
override;
43 const IR::Node *postorder(IR::ConstructorCallExpression *expression)
override;
44 const IR::Node *postorder(IR::Declaration_Instance *instance)
override;
47class OrderArguments :
public PassManager {
50 if (!typeChecking) typeChecking =
new TypeChecking(refMap, typeMap);
51 passes.push_back(typeChecking);
53 setName(
"OrderArguments");
Definition orderArguments.h:31
Class used to encode maps from paths to declarations.
Definition referenceMap.h:66
Definition typeChecker.h:55
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24