Static Value-Flow Analysis
Loading...
Searching...
No Matches
Public Member Functions | List of all members
SVF::CFLGramGraphChecker Class Reference

#include <CFLGramGraphChecker.h>

Public Member Functions

void check (GrammarBase *grammar, CFLGraphBuilder *graphBuilder, CFLGraph *graph)
 

Detailed Description

Definition at line 39 of file CFLGramGraphChecker.h.

Member Function Documentation

◆ check()

void SVF::CFLGramGraphChecker::check ( GrammarBase grammar,
CFLGraphBuilder graphBuilder,
CFLGraph graph 
)
inline

Check all kinds in grammar in graphBuilder with the same label

Get KindToAttrs Map from Graph to Grammar

Definition at line 42 of file CFLGramGraphChecker.h.

43 {
45 for(auto pairV : grammar->getTerminals())
46 {
47 if (graphBuilder->getLabelToKindMap().find(pairV.first) != graphBuilder->getLabelToKindMap().end())
48 {
49 assert(graphBuilder->getLabelToKindMap()[pairV.first] == pairV.second);
50 assert(graphBuilder->getKindToLabelMap()[pairV.second] == pairV.first);
51 }
52 }
53
54 for(auto pairV : grammar->getNonterminals())
55 {
56 if (graphBuilder->getLabelToKindMap().find(pairV.first) != graphBuilder->getLabelToKindMap().end())
57 {
58 assert(graphBuilder->getLabelToKindMap()[pairV.first] == pairV.second);
59 assert(graphBuilder->getKindToLabelMap()[pairV.second] == pairV.first);
60 }
61 else
62 {
63 graphBuilder->getLabelToKindMap().insert(std::make_pair (pairV.first,pairV.second));
64 graphBuilder->getKindToLabelMap().insert(std::make_pair (pairV.second, pairV.first));
65 }
66 }
67
69 grammar->setKindToAttrsMap(graphBuilder->getKindToAttrsMap());
70 graph->startKind = grammar->getStartKind();
71 }
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:76

The documentation for this class was generated from the following file: