17#ifndef FRONTENDS_P4_CORELIBRARY_H_
18#define FRONTENDS_P4_CORELIBRARY_H_
20#include "frontends/common/model.h"
22#include "lib/cstring.h"
25enum class StandardExceptions {
36inline std::ostream &operator<<(std::ostream &out, P4::StandardExceptions e) {
38 case P4::StandardExceptions::NoError:
41 case P4::StandardExceptions::PacketTooShort:
42 out <<
"PacketTooShort";
44 case P4::StandardExceptions::NoMatch:
47 case P4::StandardExceptions::StackOutOfBounds:
48 out <<
"StackOutOfBounds";
50 case P4::StandardExceptions::OverwritingHeader:
51 out <<
"OverwritingHeader";
53 case P4::StandardExceptions::HeaderTooShort:
54 out <<
"HeaderTooShort";
56 case P4::StandardExceptions::ParserTimeout:
57 out <<
"ParserTimeout";
60 BUG(
"Unhandled case");
70 : Extern_Model(
"packet_in"),
72 lookahead(
"lookahead"),
79 int extractSecondArgSize = 32;
84 PacketOut() : Extern_Model(
"packet_out"), emit(
"emit") {}
90 const StandardExceptions exc;
92 std::stringstream str;
104 : noAction(
"NoAction"),
106 ternaryMatch(
"ternary"),
108 noError(StandardExceptions::NoError),
109 packetTooShort(StandardExceptions::PacketTooShort),
110 noMatch(StandardExceptions::NoMatch),
111 stackOutOfBounds(StandardExceptions::StackOutOfBounds),
112 overwritingHeader(StandardExceptions::OverwritingHeader),
113 headerTooShort(StandardExceptions::HeaderTooShort) {}
Definition coreLibrary.h:100
Definition coreLibrary.h:88
Definition coreLibrary.h:67
Definition coreLibrary.h:82
Definition applyOptionsPragmas.cpp:24
Extern_Model : Type_Model.
Definition model.h:52