|
Static Value-Flow Analysis
|
#include <CFGrammar.h>
Classes | |
| struct | Symbol |
| class | SymbolHash |
| struct | SymbolVectorHash |
Public Types | |
| typedef u32_t | Kind |
| typedef u32_t | Attribute |
| typedef u32_t | VariableAttribute |
| typedef struct SVF::GrammarBase::Symbol | Symbol |
| template<typename Key , typename Value , typename Hash = SymbolHash, typename KeyEqual = std::equal_to<Key>, typename Allocator = std::allocator<std::pair<const Key, Value>>> | |
| using | SymbolMap = Map< Key, Value, Hash, KeyEqual, Allocator > |
| template<typename Key , typename Hash = SymbolVectorHash, typename KeyEqual = std::equal_to<Key>, typename Allocator = std::allocator<Key>> | |
| using | SymbolSet = Set< Key, Hash, KeyEqual, Allocator > |
| typedef std::vector< Symbol > | Production |
| typedef SymbolSet< Production > | Productions |
Static Public Member Functions | |
| static Kind | getAttributedKind (Attribute attribute, Kind kind) |
| static Kind | getVariabledKind (VariableAttribute variableAttribute, Kind kind) |
Protected Attributes | |
| Kind | startKind |
Static Protected Attributes | |
| static constexpr unsigned char | EdgeKindMaskBits = 8 |
| We use the lower 8 bits to denote edge kind. | |
| static constexpr unsigned char | AttributedKindMaskBits = 24 |
| We use the lower 24 bits to denote attributed kind. | |
| static constexpr u64_t | EdgeKindMask = (~0ULL) >> (64 - EdgeKindMaskBits) |
Private Attributes | |
| Map< std::string, Kind > | nonterminals |
| Map< std::string, Kind > | terminals |
| Map< std::string, Kind > | EBNFSigns |
| Set< Kind > | attributeKinds |
| Map contains Signs' String and associated Symbols. | |
| Map< Kind, Set< Attribute > > | kindToAttrsMap |
| SymbolMap< Symbol, Productions > | rawProductions |
| u32_t | totalKind |
Definition at line 40 of file CFGrammar.h.
Definition at line 44 of file CFGrammar.h.
Definition at line 43 of file CFGrammar.h.
| typedef std::vector<Symbol> SVF::GrammarBase::Production |
Definition at line 160 of file CFGrammar.h.
Definition at line 161 of file CFGrammar.h.
| using SVF::GrammarBase::SymbolMap = Map<Key, Value, Hash, KeyEqual, Allocator> |
Definition at line 154 of file CFGrammar.h.
| using SVF::GrammarBase::SymbolSet = Set<Key, Hash, KeyEqual, Allocator> |
Definition at line 158 of file CFGrammar.h.
Definition at line 45 of file CFGrammar.h.
| std::string GrammarBase::extractAttributeStrFromSymbolStr | ( | const std::string & | symbolStr | ) | const |
Definition at line 221 of file CFGrammar.cpp.
| std::string GrammarBase::extractKindStrFromSymbolStr | ( | const std::string & | symbolStr | ) | const |
Definition at line 209 of file CFGrammar.cpp.
Definition at line 269 of file CFGrammar.h.
Definition at line 247 of file CFGrammar.h.
Definition at line 184 of file CFGrammar.h.
Definition at line 199 of file CFGrammar.h.
Definition at line 164 of file CFGrammar.h.
|
inline |
Definition at line 194 of file CFGrammar.h.
|
inline |
Definition at line 209 of file CFGrammar.h.
|
inline |
Definition at line 242 of file CFGrammar.h.
Definition at line 174 of file CFGrammar.h.
|
inline |
Definition at line 204 of file CFGrammar.h.
|
inlinestatic |
Definition at line 274 of file CFGrammar.h.
Definition at line 329 of file CFGrammar.cpp.
| GrammarBase::Symbol GrammarBase::insertEBNFSigns | ( | std::string | strLit | ) |
Definition at line 313 of file CFGrammar.cpp.
|
inline |
Insert kind to nonterminal and return kind.
Definition at line 194 of file CFGrammar.cpp.
| GrammarBase::Symbol GrammarBase::insertNonTerminalSymbol | ( | std::string | strLit | ) |
Definition at line 251 of file CFGrammar.cpp.
| GrammarBase::Symbol GrammarBase::insertSymbol | ( | std::string | strLit | ) |
Definition at line 233 of file CFGrammar.cpp.
| GrammarBase::Kind GrammarBase::insertTerminalKind | ( | std::string | strLit | ) |
From SymbolStr extract kind to inserted in nonterminal symbolStr = <kindStr> [_] [ attributeStr | variableattributeStr ]
Definition at line 179 of file CFGrammar.cpp.
| GrammarBase::Symbol GrammarBase::insertTerminalSymbol | ( | std::string | strLit | ) |
Definition at line 282 of file CFGrammar.cpp.
| std::string GrammarBase::kindToStr | ( | Kind | kind | ) | const |
Definition at line 105 of file CFGrammar.cpp.
Definition at line 52 of file CFGrammar.cpp.
Definition at line 189 of file CFGrammar.h.
Definition at line 47 of file CFGrammar.cpp.
Definition at line 169 of file CFGrammar.h.
| void GrammarBase::setRawProductions | ( | SymbolMap< Symbol, Productions > & | rawProductions | ) |
Definition at line 42 of file CFGrammar.cpp.
|
inline |
Definition at line 214 of file CFGrammar.h.
Definition at line 179 of file CFGrammar.h.
|
inline |
Definition at line 219 of file CFGrammar.h.
| GrammarBase::Kind GrammarBase::strToKind | ( | std::string | str | ) | const |
Definition at line 57 of file CFGrammar.cpp.
| GrammarBase::Symbol GrammarBase::strToSymbol | ( | const std::string | str | ) | const |
Definition at line 76 of file CFGrammar.cpp.
| std::string GrammarBase::symToStrDump | ( | Symbol | sym | ) | const |
Definition at line 141 of file CFGrammar.cpp.
We use the lower 24 bits to denote attributed kind.
Definition at line 281 of file CFGrammar.h.
Map contains Signs' String and associated Symbols.
Definition at line 288 of file CFGrammar.h.
Definition at line 287 of file CFGrammar.h.
|
staticconstexprprotected |
Definition at line 282 of file CFGrammar.h.
We use the lower 8 bits to denote edge kind.
Definition at line 280 of file CFGrammar.h.
Definition at line 289 of file CFGrammar.h.
Definition at line 285 of file CFGrammar.h.
|
private |
Definition at line 290 of file CFGrammar.h.
|
protected |
Definition at line 283 of file CFGrammar.h.
Definition at line 286 of file CFGrammar.h.
|
private |
Definition at line 291 of file CFGrammar.h.