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();