19 virtual IR::StatOrDecl *generateRandomStatementOrDeclaration(
bool is_in_func);
21 virtual IR::Annotations *genAnnotation();
23 virtual IR::P4Action *genActionDeclaration();
25 virtual IR::Declaration_Constant *genConstantDeclaration();
29 virtual IR::P4Control *genControlDeclaration();
31 virtual IR::Declaration_Instance *genControlDeclarationInstance();
33 virtual IR::Type *genDerivedTypeDeclaration();
41 virtual IR::Type_Enum *genEnumDeclaration(
cstring name);
43 virtual IR::Type_SerEnum *genSerEnumDeclaration(
cstring name);
45 virtual IR::Type *genEnumTypeDeclaration(
int type);
47 virtual IR::Method *genExternDeclaration();
49 virtual IR::Function *genFunctionDeclaration();
51 static IR::Type_Header *genEthernetHeaderType();
53 virtual IR::Type_Header *genHeaderTypeDeclaration();
55 virtual IR::Type_HeaderUnion *genHeaderUnionDeclaration();
57 static constexpr size_t MAX_HEADER_STACK_SIZE = 10;
59 virtual IR::Type *genHeaderStackType();
61 virtual IR::Type_Struct *genStructTypeDeclaration();
63 virtual IR::Type_Struct *genHeaderStruct();
65 virtual IR::Type_Declaration *genTypeDeclaration();
67 virtual const IR::Type *genType();
69 virtual IR::Type_Typedef *genTypeDef();
71 virtual IR::Type_Newtype *genNewtype();
73 virtual IR::Type *genTypeDefOrNewType();
75 virtual IR::Declaration_Variable *genVariableDeclaration();
77 virtual IR::Parameter *genTypedParameter(
bool if_none_dir);
79 virtual IR::Parameter *genParameter(IR::Direction dir,
cstring p_name,
cstring t_name);
81 virtual IR::ParameterList *genParameterList();