17#ifndef MIDEND_SINGLEARGUMENTSELECT_H_
18#define MIDEND_SINGLEARGUMENTSELECT_H_
20#include "frontends/p4/typeChecking/typeChecker.h"
34 const IR::Type *selectListType;
38 setName(
"DoSingleArgumentSelect");
43 const IR::Expression *expr;
44 const IR::Expression *mask;
47 Pair(
const IR::Expression *source,
const IR::Type *type);
52 void checkExpressionType(
const IR::Expression *expression);
54 bool preorder(IR::SelectCase *selCase)
override;
55 bool preorder(IR::SelectExpression *expression)
override;
61 if (!typeChecking) typeChecking =
new TypeChecking(
nullptr, typeMap);
62 passes.push_back(typeChecking);
64 setName(
"SingleArgumentSelect");
Definition singleArgumentSelect.h:32
Definition ir/pass_manager.h:40
Definition singleArgumentSelect.h:58
Definition typeChecker.h:55
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24
A pair of expression representing an expression and a mask.
Definition singleArgumentSelect.h:42