1#ifndef BACKENDS_P4TOOLS_MODULES_SMITH_TARGETS_BMV2_V1MODEL_H_
2#define BACKENDS_P4TOOLS_MODULES_SMITH_TARGETS_BMV2_V1MODEL_H_
6#include "backends/p4tools/modules/smith/common/declarations.h"
7#include "backends/p4tools/modules/smith/common/expressions.h"
8#include "backends/p4tools/modules/smith/common/parser.h"
9#include "backends/p4tools/modules/smith/common/statements.h"
10#include "backends/p4tools/modules/smith/common/table.h"
11#include "backends/p4tools/modules/smith/targets/bmv2/target.h"
14namespace P4::P4Tools::P4Smith::BMv2 {
24 [[nodiscard]] IR::P4Parser *generateParserBlock()
const;
25 [[nodiscard]] IR::P4Control *generateIngressBlock()
const;
26 [[nodiscard]] IR::P4Control *generateUpdateBlock()
const;
27 [[nodiscard]] IR::P4Control *generateVerifyBlock()
const;
28 [[nodiscard]] IR::P4Control *generateEgressBlock()
const;
29 [[nodiscard]] IR::P4Control *generateDeparserBlock()
const;
37 [[nodiscard]]
const IR::P4Program *generateP4Program()
const override;
40 return *_declarationGenerator;
44 return *_expressionGenerator;
48 return *_statementGenerator;
51 [[nodiscard]]
ParserGenerator &parserGenerator()
const override {
return *_parserGenerator; }
53 [[nodiscard]]
TableGenerator &tableGenerator()
const override {
return *_tableGenerator; }