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 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; }