22class GenericCoreSmithTarget :
public AbstractGenericSmithTarget {
30 [[nodiscard]] IR::P4Parser *generateParserBlock()
const;
31 [[nodiscard]] IR::P4Control *generateIngressBlock()
const;
32 [[nodiscard]]
static IR::Declaration_Instance *generateMainPackage();
34 [[nodiscard]] IR::Type_Parser *generateParserBlockType()
const;
35 [[nodiscard]] IR::Type_Control *generateIngressBlockType()
const;
36 [[nodiscard]] IR::Type_Package *generatePackageType()
const;
43 [[nodiscard]]
static GenericCoreSmithTarget *getInstance();
47 [[nodiscard]]
const IR::P4Program *generateP4Program()
const override;
50 return *_declarationGenerator;
54 return *_expressionGenerator;
58 return *_statementGenerator;
61 [[nodiscard]]
ParserGenerator &parserGenerator()
const override {
return *_parserGenerator; }
63 [[nodiscard]]
TableGenerator &tableGenerator()
const override {
return *_tableGenerator; }
66 GenericCoreSmithTarget();