souffle  2.0.2-371-g6315b36
Public Member Functions | Static Public Attributes | Private Attributes
souffle::ast::analysis::SumTypeBranchesAnalysis Class Reference

#include <SumTypeBranches.h>

Inheritance diagram for souffle::ast::analysis::SumTypeBranchesAnalysis:
Inheritance graph
Collaboration diagram for souffle::ast::analysis::SumTypeBranchesAnalysis:
Collaboration graph

Public Member Functions

const TypegetType (const std::string &branch) const
 A type can be nullptr in case of a malformed program. More...
 
void run (const TranslationUnit &translationUnit) override
 run analysis for a Ast translation unit More...
 
 SumTypeBranchesAnalysis ()
 
const AlgebraicDataTypeunsafeGetType (const std::string &branch) const
 
- Public Member Functions inherited from souffle::ast::analysis::Analysis
 Analysis (std::string identifier)
 
virtual const std::string & getName () const
 get name of the analysis More...
 
virtual void print (std::ostream &) const
 print the analysis result in HTML format More...
 
virtual ~Analysis ()=default
 

Static Public Attributes

static constexpr const char * name = "sum-type-branches"
 

Private Attributes

std::map< std::string, const Type * > branchToType
 

Additional Inherited Members

- Protected Attributes inherited from souffle::ast::analysis::Analysis
const std::string identifier
 

Detailed Description

Definition at line 40 of file SumTypeBranches.h.

Constructor & Destructor Documentation

◆ SumTypeBranchesAnalysis()

souffle::ast::analysis::SumTypeBranchesAnalysis::SumTypeBranchesAnalysis ( )
inline

Definition at line 50 of file SumTypeBranches.h.

51 :
52  std::map<std::string, const Type*> branchToType;

Member Function Documentation

◆ getType()

const Type* souffle::ast::analysis::SumTypeBranchesAnalysis::getType ( const std::string &  branch) const
inline

A type can be nullptr in case of a malformed program.

Definition at line 57 of file SumTypeBranches.h.

◆ run()

void souffle::ast::analysis::SumTypeBranchesAnalysis::run ( const TranslationUnit )
overridevirtual

run analysis for a Ast translation unit

Implements souffle::ast::analysis::Analysis.

Definition at line 36 of file SumTypeBranches.cpp.

38  : adt.getBranches()) {
39  branchToType[branch->getConstructor()] = &env.getType(typeName);
40  }
41  });
42 }
43 
44 } // namespace souffle::ast::analysis

◆ unsafeGetType()

const AlgebraicDataType& souffle::ast::analysis::SumTypeBranchesAnalysis::unsafeGetType ( const std::string &  branch) const
inline

Definition at line 65 of file SumTypeBranches.h.

Field Documentation

◆ branchToType

std::map<std::string, const Type*> souffle::ast::analysis::SumTypeBranchesAnalysis::branchToType
private

Definition at line 70 of file SumTypeBranches.h.

◆ name

constexpr const char* souffle::ast::analysis::SumTypeBranchesAnalysis::name = "sum-type-branches"
staticconstexpr

Definition at line 48 of file SumTypeBranches.h.


The documentation for this class was generated from the following files:
souffle::ast::analysis::SumTypeBranchesAnalysis::branchToType
std::map< std::string, const Type * > branchToType
Definition: SumTypeBranches.h:70