1#ifndef BACKENDS_P4TOOLS_MODULES_SMITH_CORE_TARGET_H_
2#define BACKENDS_P4TOOLS_MODULES_SMITH_CORE_TARGET_H_
7#include "backends/p4tools/common/compiler/compiler_target.h"
8#include "backends/p4tools/modules/smith/common/declarations.h"
9#include "backends/p4tools/modules/smith/common/expressions.h"
10#include "backends/p4tools/modules/smith/common/parser.h"
11#include "backends/p4tools/modules/smith/common/statements.h"
12#include "backends/p4tools/modules/smith/common/table.h"
15namespace P4::P4Tools::P4Smith {
17class SmithTarget :
public CompilerTarget {
20 static const SmithTarget &
get();
26 [[nodiscard]]
virtual const IR::P4Program *generateP4Program()
const = 0;
35 explicit SmithTarget(
const std::string &deviceName,
const std::string &archName);