1#ifndef BACKENDS_P4TOOLS_MODULES_TESTGEN_LIB_COLLECT_COVERABLE_NODES_H_ 
    2#define BACKENDS_P4TOOLS_MODULES_TESTGEN_LIB_COLLECT_COVERABLE_NODES_H_ 
    8#include "midend/coverage.h" 
   10#include "backends/p4tools/modules/testgen/lib/execution_state.h" 
   12namespace P4::P4Tools::P4Testgen {
 
   15using NodeCache = std::map<const IR::Node *, P4::Coverage::CoverageSet>;
 
   22class CoverableNodesScanner : 
public Inspector {
 
   27    std::reference_wrapper<const ExecutionState> state;
 
   30    std::set<int> seenParserIds;
 
   36    bool preorder(
const IR::ParserState *parserState) 
override;
 
   37    bool preorder(
const IR::AssignmentStatement *stmt) 
override;
 
   38    bool preorder(
const IR::MethodCallStatement *stmt) 
override;
 
   39    bool preorder(
const IR::ExitStatement *stmt) 
override;
 
   40    bool preorder(
const IR::MethodCallExpression *call) 
override;
 
   43    bool preorder(
const IR::P4Action *act) 
override;
 
 
std::set< const IR::Node *, SourceIdCmp > CoverageSet
Definition coverage.h:39
 
Specifies general options and which IR nodes to track with this particular visitor.
Definition coverage.h:25