P4C
The P4 Compiler
Loading...
Searching...
No Matches
syntacticEquivalence.h
1
/*
2
* Copyright 2016 VMware, Inc.
3
* SPDX-FileCopyrightText: 2016 VMware, Inc.
4
*
5
* SPDX-License-Identifier: Apache-2.0
6
*/
7
8
#ifndef FRONTENDS_P4_TYPECHECKING_SYNTACTICEQUIVALENCE_H_
9
#define FRONTENDS_P4_TYPECHECKING_SYNTACTICEQUIVALENCE_H_
10
11
#include "frontends/common/resolveReferences/referenceMap.h"
12
#include "frontends/p4/typeMap.h"
13
#include "ir/ir.h"
14
15
namespace
P4
{
16
17
// Check if two expressions are syntactically equivalent
18
class
SameExpression {
19
const
DeclarationLookup
*refMap;
20
const
TypeMap
*typeMap;
21
22
public
:
23
explicit
SameExpression(
const
DeclarationLookup
*refMap,
const
TypeMap
*typeMap)
24
: refMap(refMap), typeMap(typeMap) {
25
CHECK_NULL(refMap);
26
CHECK_NULL(typeMap);
27
}
28
bool
sameType(
const
IR::Type *left,
const
IR::Type *right)
const
;
29
bool
sameExpression(
const
IR::Expression *left,
const
IR::Expression *right)
const
;
30
bool
sameExpressions(
const
IR::Vector<IR::Expression>
*left,
31
const
IR::Vector<IR::Expression>
*right)
const
;
32
bool
sameExpressions(
const
IR::Vector<IR::Argument>
*left,
33
const
IR::Vector<IR::Argument>
*right)
const
;
34
};
35
36
}
// namespace P4
37
38
#endif
/* FRONTENDS_P4_TYPECHECKING_SYNTACTICEQUIVALENCE_H_ */
P4::DeclarationLookup
Definition
referenceMap.h:57
P4::IR::Vector
Definition
ir/vector.h:59
P4::TypeMap
Definition
typeMap.h:32
P4
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition
applyOptionsPragmas.cpp:13
frontends
p4
typeChecking
syntacticEquivalence.h
Generated by
1.13.2