28class GenericCoreSmithTarget :
public AbstractGenericSmithTarget {
36 [[nodiscard]] IR::P4Parser *generateParserBlock()
const;
37 [[nodiscard]] IR::P4Control *generateIngressBlock()
const;
38 [[nodiscard]]
static IR::Declaration_Instance *generateMainPackage();
40 [[nodiscard]] IR::Type_Parser *generateParserBlockType()
const;
41 [[nodiscard]] IR::Type_Control *generateIngressBlockType()
const;
42 [[nodiscard]] IR::Type_Package *generatePackageType()
const;
49 [[nodiscard]]
static GenericCoreSmithTarget *getInstance();
53 [[nodiscard]]
const IR::P4Program *generateP4Program()
const override;
56 return *_declarationGenerator;
60 return *_expressionGenerator;
64 return *_statementGenerator;
67 [[nodiscard]]
ParserGenerator &parserGenerator()
const override {
return *_parserGenerator; }
69 [[nodiscard]]
TableGenerator &tableGenerator()
const override {
return *_tableGenerator; }
72 GenericCoreSmithTarget();