16#ifndef MIDEND_CONVERTERRORS_H_ 
   17#define MIDEND_CONVERTERRORS_H_ 
   21#include "frontends/common/resolveReferences/referenceMap.h" 
   22#include "frontends/p4/typeChecking/typeChecker.h" 
   23#include "frontends/p4/typeMap.h" 
   26#include "ir/pass_manager.h" 
   27#include "ir/visitor.h" 
   28#include "lib/cstring.h" 
   30#include "lib/safe_vector.h" 
   31#include "midend/convertEnums.h" 
   45    virtual bool convert(
const IR::Type_Error *type) 
const = 0;
 
   51    virtual unsigned errorSize(
unsigned errorCount) 
const = 0;
 
   56                                                               unsigned width) 
const;
 
 
   62    std::map<cstring, P4::EnumRepresentation *> repr;
 
   68        : policy(policy), typeMap(typeMap) {
 
   71        setName(
"DoConvertErrors");
 
   73    const IR::Node *preorder(IR::Type_Error *type) 
override;
 
   74    const IR::Node *postorder(IR::Type_Name *type) 
override;
 
   75    const IR::Node *postorder(IR::Member *member) 
override;
 
 
   82    using ErrorMapping = 
decltype(DoConvertErrors::repr);
 
   86        if (typeChecking == 
nullptr) {
 
   89        passes.push_back(typeChecking);
 
   90        passes.push_back(convertErrors);
 
   92        setName(
"ConvertErrors");
 
   95    ErrorMapping getErrorMapping()
 const { 
return convertErrors->repr; }
 
 
Definition convertErrors.h:40
 
virtual unsigned errorSize(unsigned errorCount) const =0
 
virtual IR::IndexedVector< IR::SerEnumMember > * assignValues(IR::Type_Error *type, unsigned width) const
Definition convertErrors.cpp:70
 
virtual bool convert(const IR::Type_Error *type) const =0
If true this type has to be converted.
 
Definition typeChecker.h:32
 
Definition convertErrors.h:78
 
Definition convertErrors.h:59
 
Class used to encode maps from paths to declarations.
Definition referenceMap.h:66
 
Definition typeChecker.h:55
 
Definition pass_manager.h:38
 
Definition applyOptionsPragmas.cpp:24