svf-tools 1.0.442 → 1.0.445

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenHCD_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenHLCD_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +1 -1
  8. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/html/Andersen_8h_source.html +1 -1
  12. package/SVF-doxygen/html/html/Annotator_8h_source.html +1 -1
  13. package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/BDDExpr_8h_source.html +1 -1
  15. package/SVF-doxygen/html/html/BitVector_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/html/BitVector_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +1 -1
  19. package/SVF-doxygen/html/html/CFGNormalizer_8cpp.html +86 -0
  20. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +104 -0
  21. package/SVF-doxygen/html/html/CFGNormalizer_8h.html +95 -0
  22. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +95 -0
  23. package/SVF-doxygen/html/html/CFLAlias_8h.html +100 -0
  24. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +136 -0
  25. package/SVF-doxygen/html/html/CFLGrammar_8cpp.html +81 -0
  26. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +90 -0
  27. package/SVF-doxygen/html/html/CFLGrammar_8h.html +97 -0
  28. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +114 -0
  29. package/SVF-doxygen/html/html/CFLGraph_8cpp.html +96 -0
  30. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +123 -0
  31. package/SVF-doxygen/html/html/CFLGraph_8h.html +124 -0
  32. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +114 -0
  33. package/SVF-doxygen/html/html/CFLSolver_8cpp.html +80 -0
  34. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +107 -0
  35. package/SVF-doxygen/html/html/CFLSolver_8h.html +6 -5
  36. package/SVF-doxygen/html/html/CFLSolver_8h_source.html +27 -33
  37. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
  38. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +1 -1
  39. package/SVF-doxygen/html/html/CHG_8cpp_source.html +2 -2
  40. package/SVF-doxygen/html/html/CHG_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +1 -1
  43. package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/html/CSC_8h_source.html +1 -1
  45. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +1 -1
  46. package/SVF-doxygen/html/html/CallGraphBuilder_8h_source.html +1 -1
  47. package/SVF-doxygen/html/html/Casting_8h_source.html +1 -1
  48. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  49. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +1 -1
  50. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +6 -6
  51. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  52. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
  54. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +2 -2
  55. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
  56. package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +1 -1
  57. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
  58. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
  59. package/SVF-doxygen/html/html/DCHG_8h_source.html +2 -2
  60. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
  61. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  62. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  63. package/SVF-doxygen/html/html/DDAPass_8h_source.html +1 -1
  64. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
  65. package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
  66. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -1
  67. package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
  68. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +2 -2
  69. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +1 -1
  70. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  71. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +1 -1
  73. package/SVF-doxygen/html/html/ExeState_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
  75. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
  76. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +1 -1
  77. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +1 -1
  79. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  80. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  81. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  82. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
  83. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +1 -1
  84. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  86. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
  88. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +2 -2
  89. package/SVF-doxygen/html/html/GrammarBuilder_8cpp.html +94 -0
  90. package/SVF-doxygen/html/html/GrammarBuilder_8cpp_source.html +92 -0
  91. package/SVF-doxygen/html/html/GrammarBuilder_8h.html +96 -0
  92. package/SVF-doxygen/html/html/GrammarBuilder_8h_source.html +87 -0
  93. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  94. package/SVF-doxygen/html/html/Graph2Json_8h_source.html +1 -1
  95. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
  96. package/SVF-doxygen/html/html/GraphReachSolver_8h.html +96 -0
  97. package/SVF-doxygen/html/html/GraphReachSolver_8h_source.html +113 -0
  98. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
  99. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  100. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +1 -1
  102. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
  103. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  104. package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
  105. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +1 -1
  106. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
  107. package/SVF-doxygen/html/html/IRGraph_8h_source.html +3 -3
  108. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
  109. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +1 -1
  110. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -1
  111. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
  112. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
  113. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
  114. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
  115. package/SVF-doxygen/html/html/LocationSet_8h_source.html +1 -1
  116. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
  117. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
  118. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  119. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
  120. package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
  121. package/SVF-doxygen/html/html/MHP_8h_source.html +1 -1
  122. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
  123. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  124. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +1 -1
  125. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +1 -1
  126. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +1 -1
  127. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
  128. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  129. package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
  130. package/SVF-doxygen/html/html/MTA_8h_source.html +1 -1
  131. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  132. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  133. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
  134. package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
  135. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +1 -1
  136. package/SVF-doxygen/html/html/MemSSA_8h_source.html +1 -1
  137. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +1 -1
  138. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
  139. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +1 -1
  140. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
  141. package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +2 -2
  142. package/SVF-doxygen/html/html/Options_8cpp_source.html +7 -2
  143. package/SVF-doxygen/html/html/Options_8h_source.html +7 -2
  144. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
  145. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
  146. package/SVF-doxygen/html/html/PCG_8cpp_source.html +1 -1
  147. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  148. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
  149. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +2 -2
  150. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +1 -1
  151. package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
  152. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +1 -1
  153. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +1 -1
  154. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +1 -1
  155. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +1 -1
  156. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
  157. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
  158. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
  159. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +5 -5
  160. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
  161. package/SVF-doxygen/html/html/PointsTo_8h_source.html +1 -1
  162. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +1 -1
  163. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +1 -1
  164. package/SVF-doxygen/html/html/SCC_8h_source.html +1 -1
  165. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +2 -2
  166. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
  167. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +1 -1
  168. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  169. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  170. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +1 -1
  171. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  172. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +1 -1
  173. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +1 -1
  174. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +2 -2
  175. package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
  176. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +1 -1
  177. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
  178. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +1 -1
  179. package/SVF-doxygen/html/html/SVFIR_8h_source.html +1 -1
  180. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
  181. package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
  182. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  183. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
  184. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -1
  185. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +1 -1
  186. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  187. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +1 -1
  188. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +1 -1
  189. package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +1 -1
  190. package/SVF-doxygen/html/html/SaberCheckerAPI_8cpp_source.html +1 -1
  191. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  192. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  193. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
  194. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +4 -4
  195. package/SVF-doxygen/html/html/SrcSnkDDA_8h.html +3 -3
  196. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +61 -61
  197. package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +1 -1
  198. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
  199. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  200. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +1 -1
  201. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
  202. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
  203. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +1 -1
  204. package/SVF-doxygen/html/html/TCT_8cpp_source.html +2 -2
  205. package/SVF-doxygen/html/html/TCT_8h_source.html +2 -2
  206. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +1 -1
  207. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +1 -1
  208. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  209. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +1 -1
  210. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  211. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +1 -1
  212. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +1 -1
  213. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +1 -1
  214. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +1 -1
  215. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +1 -1
  216. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  217. package/SVF-doxygen/html/html/VFG_8cpp_source.html +2 -2
  218. package/SVF-doxygen/html/html/VFG_8h_source.html +2 -2
  219. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
  220. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
  221. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +1 -1
  222. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +1 -1
  223. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  224. package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
  225. package/SVF-doxygen/html/html/WPASolver_8h_source.html +1 -1
  226. package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
  227. package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
  228. package/SVF-doxygen/html/html/Z3Expr_8h_source.html +1 -1
  229. package/SVF-doxygen/html/html/annotated.html +302 -288
  230. package/SVF-doxygen/html/html/cfl_8cpp.html +171 -0
  231. package/SVF-doxygen/html/html/cfl_8cpp_source.html +95 -0
  232. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +51 -51
  233. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +3 -3
  234. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +39 -39
  235. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +3 -3
  236. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +56 -56
  237. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +3 -3
  238. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +55 -55
  239. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +3 -3
  240. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +51 -51
  241. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +3 -3
  242. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +52 -52
  243. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +3 -3
  244. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +59 -59
  245. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +3 -3
  246. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +53 -53
  247. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +3 -3
  248. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +33 -33
  249. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +3 -3
  250. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer-members.html +90 -0
  251. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +458 -0
  252. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +216 -0
  253. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +801 -0
  254. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.png +0 -0
  255. package/SVF-doxygen/html/html/classSVF_1_1CFLEdge-members.html +96 -0
  256. package/SVF-doxygen/html/html/classSVF_1_1CFLEdge.html +216 -0
  257. package/SVF-doxygen/html/html/classSVF_1_1CFLEdge.png +0 -0
  258. package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar-members.html +110 -0
  259. package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar.html +591 -0
  260. package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar.png +0 -0
  261. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph-members.html +122 -0
  262. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +756 -0
  263. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.png +0 -0
  264. package/SVF-doxygen/html/html/classSVF_1_1CFLNode-members.html +118 -0
  265. package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +257 -0
  266. package/SVF-doxygen/html/html/classSVF_1_1CFLNode.png +0 -0
  267. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver-members.html +17 -28
  268. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +181 -548
  269. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +36 -36
  270. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +3 -3
  271. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  272. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
  273. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +57 -57
  274. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +3 -3
  275. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +55 -55
  276. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +64 -64
  277. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.png +0 -0
  278. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +55 -55
  279. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +3 -3
  280. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +57 -57
  281. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +66 -66
  282. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.png +0 -0
  283. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +48 -48
  284. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +3 -3
  285. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +47 -47
  286. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +3 -3
  287. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +59 -59
  288. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +3 -3
  289. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +8 -24
  290. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.png +0 -0
  291. package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.html +10 -9
  292. package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.png +0 -0
  293. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +21 -20
  294. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  295. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase-members.html +93 -0
  296. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +399 -0
  297. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.png +0 -0
  298. package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder-members.html +85 -0
  299. package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder.html +226 -0
  300. package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver-members.html +106 -0
  301. package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver.html +937 -0
  302. package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver.png +0 -0
  303. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +55 -55
  304. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +81 -81
  305. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.png +0 -0
  306. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +80 -75
  307. package/SVF-doxygen/html/html/classSVF_1_1Options.html +130 -0
  308. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +25 -25
  309. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +17 -16
  310. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
  311. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +51 -51
  312. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +207 -207
  313. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.png +0 -0
  314. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.html +0 -12
  315. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +42 -42
  316. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +3 -3
  317. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +45 -45
  318. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +3 -3
  319. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +61 -61
  320. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +5 -5
  321. package/SVF-doxygen/html/html/classes.html +103 -101
  322. package/SVF-doxygen/html/html/cuddInt_8c.html +6 -6
  323. package/SVF-doxygen/html/html/cuddInt_8c_source.html +2 -2
  324. package/SVF-doxygen/html/html/cudd_8h.html +4 -4
  325. package/SVF-doxygen/html/html/dda_8cpp.html +2 -46
  326. package/SVF-doxygen/html/html/dda_8cpp_source.html +4 -5
  327. package/SVF-doxygen/html/html/dir_1870ebf480d659cc38d2dd7ac3aa8993.html +2 -0
  328. package/SVF-doxygen/html/html/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html +2 -0
  329. package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
  330. package/SVF-doxygen/html/html/dir_97aefd0d527b934f1d99a682da8fe6a9.html +2 -0
  331. package/SVF-doxygen/html/html/dir_98f9a352f241e0e917d4efaa4086f6e8.html +89 -0
  332. package/SVF-doxygen/html/html/dir_ae8aa099e368efaa962140c6624142bc.html +91 -0
  333. package/SVF-doxygen/html/html/dir_d44c64559bbebec7f509842c48db8b23.html +2 -0
  334. package/SVF-doxygen/html/html/dir_e6cca4e14eddbb730e0cbe3cab632ce5.html +83 -0
  335. package/SVF-doxygen/html/html/dir_fa02919a30fec2d2c2d591b4d920d648.html +2 -0
  336. package/SVF-doxygen/html/html/files.html +268 -252
  337. package/SVF-doxygen/html/html/functions.html +2 -1
  338. package/SVF-doxygen/html/html/functions_0x7e.html +18 -0
  339. package/SVF-doxygen/html/html/functions_a.html +16 -14
  340. package/SVF-doxygen/html/html/functions_b.html +16 -5
  341. package/SVF-doxygen/html/html/functions_c.html +69 -26
  342. package/SVF-doxygen/html/html/functions_d.html +3 -1
  343. package/SVF-doxygen/html/html/functions_e.html +19 -4
  344. package/SVF-doxygen/html/html/functions_eval.html +0 -6
  345. package/SVF-doxygen/html/html/functions_eval_c.html +9 -0
  346. package/SVF-doxygen/html/html/functions_eval_f.html +0 -3
  347. package/SVF-doxygen/html/html/functions_f.html +28 -21
  348. package/SVF-doxygen/html/html/functions_func.html +18 -10
  349. package/SVF-doxygen/html/html/functions_func_0x7e.html +18 -0
  350. package/SVF-doxygen/html/html/functions_func_b.html +19 -8
  351. package/SVF-doxygen/html/html/functions_func_c.html +42 -18
  352. package/SVF-doxygen/html/html/functions_func_d.html +4 -2
  353. package/SVF-doxygen/html/html/functions_func_e.html +10 -1
  354. package/SVF-doxygen/html/html/functions_func_f.html +6 -3
  355. package/SVF-doxygen/html/html/functions_func_g.html +56 -10
  356. package/SVF-doxygen/html/html/functions_func_h.html +12 -2
  357. package/SVF-doxygen/html/html/functions_func_i.html +19 -9
  358. package/SVF-doxygen/html/html/functions_func_n.html +7 -1
  359. package/SVF-doxygen/html/html/functions_func_p.html +8 -4
  360. package/SVF-doxygen/html/html/functions_func_s.html +20 -6
  361. package/SVF-doxygen/html/html/functions_func_v.html +3 -2
  362. package/SVF-doxygen/html/html/functions_g.html +86 -21
  363. package/SVF-doxygen/html/html/functions_h.html +15 -5
  364. package/SVF-doxygen/html/html/functions_i.html +27 -12
  365. package/SVF-doxygen/html/html/functions_l.html +5 -2
  366. package/SVF-doxygen/html/html/functions_n.html +22 -7
  367. package/SVF-doxygen/html/html/functions_o.html +6 -6
  368. package/SVF-doxygen/html/html/functions_p.html +23 -16
  369. package/SVF-doxygen/html/html/functions_r.html +11 -6
  370. package/SVF-doxygen/html/html/functions_s.html +53 -17
  371. package/SVF-doxygen/html/html/functions_t.html +11 -7
  372. package/SVF-doxygen/html/html/functions_type_c.html +5 -1
  373. package/SVF-doxygen/html/html/functions_type_g.html +6 -3
  374. package/SVF-doxygen/html/html/functions_type_i.html +4 -2
  375. package/SVF-doxygen/html/html/functions_type_n.html +6 -3
  376. package/SVF-doxygen/html/html/functions_type_p.html +9 -0
  377. package/SVF-doxygen/html/html/functions_type_s.html +6 -0
  378. package/SVF-doxygen/html/html/functions_type_w.html +3 -1
  379. package/SVF-doxygen/html/html/functions_v.html +2 -1
  380. package/SVF-doxygen/html/html/functions_vars.html +2 -1
  381. package/SVF-doxygen/html/html/functions_vars_c.html +6 -0
  382. package/SVF-doxygen/html/html/functions_vars_e.html +6 -0
  383. package/SVF-doxygen/html/html/functions_vars_f.html +9 -0
  384. package/SVF-doxygen/html/html/functions_vars_g.html +17 -1
  385. package/SVF-doxygen/html/html/functions_vars_i.html +3 -0
  386. package/SVF-doxygen/html/html/functions_vars_l.html +3 -0
  387. package/SVF-doxygen/html/html/functions_vars_n.html +6 -0
  388. package/SVF-doxygen/html/html/functions_vars_r.html +3 -0
  389. package/SVF-doxygen/html/html/functions_vars_s.html +16 -0
  390. package/SVF-doxygen/html/html/functions_vars_t.html +6 -0
  391. package/SVF-doxygen/html/html/functions_vars_w.html +3 -1
  392. package/SVF-doxygen/html/html/functions_w.html +15 -1
  393. package/SVF-doxygen/html/html/globals_func_i.html +3 -10
  394. package/SVF-doxygen/html/html/globals_func_m.html +12 -11
  395. package/SVF-doxygen/html/html/globals_func_s.html +1 -0
  396. package/SVF-doxygen/html/html/globals_i.html +3 -10
  397. package/SVF-doxygen/html/html/globals_m.html +14 -13
  398. package/SVF-doxygen/html/html/globals_s.html +8 -7
  399. package/SVF-doxygen/html/html/hierarchy.html +433 -417
  400. package/SVF-doxygen/html/html/mta_8cpp.html +2 -46
  401. package/SVF-doxygen/html/html/mta_8cpp_source.html +3 -4
  402. package/SVF-doxygen/html/html/namespaceSVF.html +83 -6
  403. package/SVF-doxygen/html/html/namespacellvm.html +9 -0
  404. package/SVF-doxygen/html/html/namespacemembers_c.html +1 -1
  405. package/SVF-doxygen/html/html/namespacemembers_g.html +11 -2
  406. package/SVF-doxygen/html/html/namespacemembers_type.html +10 -1
  407. package/SVF-doxygen/html/html/saber_8cpp.html +2 -46
  408. package/SVF-doxygen/html/html/saber_8cpp_source.html +4 -5
  409. package/SVF-doxygen/html/html/search/all_0.js +1 -1
  410. package/SVF-doxygen/html/html/search/all_1.js +4 -4
  411. package/SVF-doxygen/html/html/search/all_10.js +8 -6
  412. package/SVF-doxygen/html/html/search/all_12.js +2 -1
  413. package/SVF-doxygen/html/html/search/all_13.js +20 -11
  414. package/SVF-doxygen/html/html/search/all_14.js +5 -3
  415. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  416. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  417. package/SVF-doxygen/html/html/search/all_1b.js +6 -0
  418. package/SVF-doxygen/html/html/search/all_2.js +6 -4
  419. package/SVF-doxygen/html/html/search/all_3.js +27 -4
  420. package/SVF-doxygen/html/html/search/all_4.js +3 -2
  421. package/SVF-doxygen/html/html/search/all_5.js +5 -0
  422. package/SVF-doxygen/html/html/search/all_6.js +8 -5
  423. package/SVF-doxygen/html/html/search/all_7.js +40 -13
  424. package/SVF-doxygen/html/html/search/all_8.js +4 -1
  425. package/SVF-doxygen/html/html/search/all_9.js +9 -7
  426. package/SVF-doxygen/html/html/search/all_c.js +2 -1
  427. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  428. package/SVF-doxygen/html/html/search/all_e.js +9 -5
  429. package/SVF-doxygen/html/html/search/all_f.js +4 -4
  430. package/SVF-doxygen/html/html/search/classes_2.js +7 -0
  431. package/SVF-doxygen/html/html/search/classes_3.js +1 -0
  432. package/SVF-doxygen/html/html/search/classes_5.js +1 -0
  433. package/SVF-doxygen/html/html/search/classes_6.js +7 -0
  434. package/SVF-doxygen/html/html/search/enumvalues_0.js +0 -2
  435. package/SVF-doxygen/html/html/search/enumvalues_2.js +3 -0
  436. package/SVF-doxygen/html/html/search/enumvalues_5.js +0 -1
  437. package/SVF-doxygen/html/html/search/files_2.js +11 -1
  438. package/SVF-doxygen/html/html/search/files_6.js +4 -1
  439. package/SVF-doxygen/html/html/search/functions_0.js +4 -2
  440. package/SVF-doxygen/html/html/search/functions_1.js +6 -4
  441. package/SVF-doxygen/html/html/search/functions_10.js +7 -3
  442. package/SVF-doxygen/html/html/search/functions_13.js +1 -1
  443. package/SVF-doxygen/html/html/search/functions_16.js +6 -0
  444. package/SVF-doxygen/html/html/search/functions_2.js +8 -0
  445. package/SVF-doxygen/html/html/search/functions_3.js +2 -2
  446. package/SVF-doxygen/html/html/search/functions_4.js +3 -0
  447. package/SVF-doxygen/html/html/search/functions_5.js +3 -3
  448. package/SVF-doxygen/html/html/search/functions_6.js +22 -10
  449. package/SVF-doxygen/html/html/search/functions_7.js +4 -1
  450. package/SVF-doxygen/html/html/search/functions_8.js +5 -4
  451. package/SVF-doxygen/html/html/search/functions_b.js +1 -1
  452. package/SVF-doxygen/html/html/search/functions_c.js +2 -0
  453. package/SVF-doxygen/html/html/search/functions_e.js +2 -2
  454. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -0
  455. package/SVF-doxygen/html/html/search/typedefs_15.js +1 -1
  456. package/SVF-doxygen/html/html/search/typedefs_2.js +3 -2
  457. package/SVF-doxygen/html/html/search/typedefs_6.js +6 -3
  458. package/SVF-doxygen/html/html/search/typedefs_8.js +2 -2
  459. package/SVF-doxygen/html/html/search/typedefs_d.js +3 -3
  460. package/SVF-doxygen/html/html/search/typedefs_f.js +2 -0
  461. package/SVF-doxygen/html/html/search/variables_0.js +1 -1
  462. package/SVF-doxygen/html/html/search/variables_12.js +1 -0
  463. package/SVF-doxygen/html/html/search/variables_13.js +5 -0
  464. package/SVF-doxygen/html/html/search/variables_14.js +3 -1
  465. package/SVF-doxygen/html/html/search/variables_17.js +1 -1
  466. package/SVF-doxygen/html/html/search/variables_3.js +2 -0
  467. package/SVF-doxygen/html/html/search/variables_5.js +3 -1
  468. package/SVF-doxygen/html/html/search/variables_6.js +3 -0
  469. package/SVF-doxygen/html/html/search/variables_7.js +5 -1
  470. package/SVF-doxygen/html/html/search/variables_9.js +1 -0
  471. package/SVF-doxygen/html/html/search/variables_c.js +1 -0
  472. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  473. package/SVF-doxygen/html/html/search/variables_e.js +2 -0
  474. package/SVF-doxygen/html/html/st_8c.html +4 -4
  475. package/SVF-doxygen/html/html/st_8c_source.html +2 -2
  476. package/SVF-doxygen/html/html/st_8h.html +4 -4
  477. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4-members.html +87 -0
  478. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +381 -0
  479. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.png +0 -0
  480. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +100 -0
  481. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.png +0 -0
  482. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4-members.html +81 -0
  483. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +122 -0
  484. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.png +0 -0
  485. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +96 -0
  486. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.png +0 -0
  487. package/SVF-doxygen/html/html/svf-ex_8cpp.html +10 -54
  488. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +8 -9
  489. package/SVF-doxygen/html/html/tools_2CFL_2CMakeLists_8txt.html +102 -0
  490. package/SVF-doxygen/html/html/wpa_8cpp.html +2 -46
  491. package/SVF-doxygen/html/html/wpa_8cpp_source.html +3 -4
  492. package/include/CFL/CFGNormalizer.h +70 -0
  493. package/include/CFL/CFLAlias.h +124 -0
  494. package/include/CFL/CFLGrammar.h +127 -0
  495. package/include/CFL/CFLSolver.h +94 -0
  496. package/include/CFL/GrammarBuilder.h +65 -0
  497. package/include/Graphs/CFLGraph.h +175 -0
  498. package/include/Graphs/IRGraph.h +1 -1
  499. package/include/MemoryModel/PointerAnalysis.h +3 -3
  500. package/include/SABER/SrcSnkDDA.h +3 -2
  501. package/include/Util/GraphReachSolver.h +186 -0
  502. package/include/Util/Options.h +6 -0
  503. package/lib/CFL/CFGNormalizer.cpp +329 -0
  504. package/lib/CFL/CFLGrammar.cpp +101 -0
  505. package/lib/CFL/CFLSolver.cpp +106 -0
  506. package/lib/CFL/GrammarBuilder.cpp +155 -0
  507. package/lib/CMakeLists.txt +1 -0
  508. package/lib/Graphs/CFLGraph.cpp +225 -0
  509. package/lib/Util/Options.cpp +31 -0
  510. package/package.json +1 -1
  511. package/tools/CFL/CMakeLists.txt +12 -0
  512. package/tools/CFL/cfl.cpp +80 -0
  513. package/tools/CMakeLists.txt +1 -0
  514. package/tools/DDA/dda.cpp +0 -3
  515. package/tools/Example/svf-ex.cpp +0 -3
  516. package/tools/MTA/mta.cpp +0 -4
  517. package/tools/SABER/saber.cpp +0 -3
  518. package/tools/WPA/wpa.cpp +0 -4
@@ -5,7 +5,7 @@
5
5
  <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
6
  <meta name="generator" content="Doxygen 1.8.13"/>
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
8
- <title>Static Value-Flow Analysis: SVF::CFLSolver&lt; GraphType, DPIm &gt; Class Template Reference</title>
8
+ <title>Static Value-Flow Analysis: SVF::CFLSolver Class Reference</title>
9
9
  <link href="tabs.css" rel="stylesheet" type="text/css"/>
10
10
  <script type="text/javascript" src="jquery.js"></script>
11
11
  <script type="text/javascript" src="dynsections.js"></script>
@@ -64,421 +64,140 @@ $(function() {
64
64
  <div class="header">
65
65
  <div class="summary">
66
66
  <a href="#pub-types">Public Types</a> &#124;
67
- <a href="#pro-methods">Protected Member Functions</a> &#124;
67
+ <a href="#pub-methods">Public Member Functions</a> &#124;
68
68
  <a href="#pri-attribs">Private Attributes</a> &#124;
69
69
  <a href="classSVF_1_1CFLSolver-members.html">List of all members</a> </div>
70
70
  <div class="headertitle">
71
- <div class="title">SVF::CFLSolver&lt; GraphType, DPIm &gt; Class Template Reference</div> </div>
71
+ <div class="title">SVF::CFLSolver Class Reference</div> </div>
72
72
  </div><!--header-->
73
73
  <div class="contents">
74
74
 
75
75
  <p><code>#include &lt;<a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>&gt;</code></p>
76
- <div class="dynheader">
77
- Inheritance diagram for SVF::CFLSolver&lt; GraphType, DPIm &gt;:</div>
78
- <div class="dyncontent">
79
- <div class="center">
80
- <img src="classSVF_1_1CFLSolver.png" usemap="#SVF::CFLSolver_3C_20GraphType_2C_20DPIm_20_3E_map" alt=""/>
81
- <map id="SVF::CFLSolver_3C_20GraphType_2C_20DPIm_20_3E_map" name="SVF::CFLSolver_3C_20GraphType_2C_20DPIm_20_3E_map">
82
- <area href="classSVF_1_1SrcSnkDDA.html" alt="SVF::SrcSnkDDA" shape="rect" coords="119,56,348,80"/>
83
- <area href="classSVF_1_1LeakChecker.html" alt="SVF::LeakChecker" shape="rect" coords="119,112,348,136"/>
84
- <area href="classSVF_1_1DoubleFreeChecker.html" alt="SVF::DoubleFreeChecker" shape="rect" coords="0,168,229,192"/>
85
- <area href="classSVF_1_1FileChecker.html" alt="SVF::FileChecker" shape="rect" coords="239,168,468,192"/>
86
- </map>
87
- </div></div>
88
76
  <table class="memberdecls">
89
77
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
90
78
  Public Types</h2></td></tr>
91
- <tr class="memitem:afdead1450dbc71d4430ab660733ff85c"><td class="memItemLeft" align="right" valign="top">typedef llvm::GraphTraits&lt; GraphType &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#afdead1450dbc71d4430ab660733ff85c">GTraits</a></td></tr>
92
- <tr class="memdesc:afdead1450dbc71d4430ab660733ff85c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define the GTraits and node iterator. <a href="#afdead1450dbc71d4430ab660733ff85c">More...</a><br /></td></tr>
93
- <tr class="separator:afdead1450dbc71d4430ab660733ff85c"><td class="memSeparator" colspan="2">&#160;</td></tr>
94
- <tr class="memitem:a7a180d7878fc7b4c055fa72298398127"><td class="memItemLeft" align="right" valign="top">typedef GTraits::NodeType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a7a180d7878fc7b4c055fa72298398127">GNODE</a></td></tr>
95
- <tr class="separator:a7a180d7878fc7b4c055fa72298398127"><td class="memSeparator" colspan="2">&#160;</td></tr>
96
- <tr class="memitem:aaddd6c593ad39c117bd35ede711b9f36"><td class="memItemLeft" align="right" valign="top">typedef GTraits::EdgeType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#aaddd6c593ad39c117bd35ede711b9f36">GEDGE</a></td></tr>
97
- <tr class="separator:aaddd6c593ad39c117bd35ede711b9f36"><td class="memSeparator" colspan="2">&#160;</td></tr>
98
- <tr class="memitem:a586cfb2dd110d1853e70e534e0f66624"><td class="memItemLeft" align="right" valign="top">typedef GTraits::nodes_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a586cfb2dd110d1853e70e534e0f66624">node_iterator</a></td></tr>
99
- <tr class="separator:a586cfb2dd110d1853e70e534e0f66624"><td class="memSeparator" colspan="2">&#160;</td></tr>
100
- <tr class="memitem:adf0b96a758a29d5c3c46fcc48081b62c"><td class="memItemLeft" align="right" valign="top">typedef GTraits::ChildIteratorType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#adf0b96a758a29d5c3c46fcc48081b62c">child_iterator</a></td></tr>
101
- <tr class="separator:adf0b96a758a29d5c3c46fcc48081b62c"><td class="memSeparator" colspan="2">&#160;</td></tr>
102
- <tr class="memitem:ae507eecc97716000324820bb1a7a9573"><td class="memItemLeft" align="right" valign="top">typedef llvm::GraphTraits&lt; llvm::Inverse&lt; <a class="el" href="classSVF_1_1CFLSolver.html#a7a180d7878fc7b4c055fa72298398127">GNODE</a> * &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#ae507eecc97716000324820bb1a7a9573">InvGTraits</a></td></tr>
103
- <tr class="memdesc:ae507eecc97716000324820bb1a7a9573"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define inverse GTraits and note iterator. <a href="#ae507eecc97716000324820bb1a7a9573">More...</a><br /></td></tr>
104
- <tr class="separator:ae507eecc97716000324820bb1a7a9573"><td class="memSeparator" colspan="2">&#160;</td></tr>
105
- <tr class="memitem:a98613e4d455a53183d1f16a58de6244e"><td class="memItemLeft" align="right" valign="top">typedef InvGTraits::ChildIteratorType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a98613e4d455a53183d1f16a58de6244e">inv_child_iterator</a></td></tr>
106
- <tr class="separator:a98613e4d455a53183d1f16a58de6244e"><td class="memSeparator" colspan="2">&#160;</td></tr>
107
- <tr class="memitem:a802e04eafce9adfd60506c44951c3d53"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList</a>&lt; DPIm &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a802e04eafce9adfd60506c44951c3d53">WorkList</a></td></tr>
108
- <tr class="memdesc:a802e04eafce9adfd60506c44951c3d53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define worklist. <a href="#a802e04eafce9adfd60506c44951c3d53">More...</a><br /></td></tr>
109
- <tr class="separator:a802e04eafce9adfd60506c44951c3d53"><td class="memSeparator" colspan="2">&#160;</td></tr>
79
+ <tr class="memitem:a194d2c4c801799b0ba9562e33ca5b695"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList</a>&lt; const <a class="el" href="classSVF_1_1CFLEdge.html">CFLEdge</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a194d2c4c801799b0ba9562e33ca5b695">WorkList</a></td></tr>
80
+ <tr class="memdesc:a194d2c4c801799b0ba9562e33ca5b695"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define worklist. <a href="#a194d2c4c801799b0ba9562e33ca5b695">More...</a><br /></td></tr>
81
+ <tr class="separator:a194d2c4c801799b0ba9562e33ca5b695"><td class="memSeparator" colspan="2">&#160;</td></tr>
82
+ <tr class="memitem:a0ade6e3827c629c3cc3d22a101df7288"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1GrammarBase.html#af384c960a5edc576cbfb60a869e346ec">CFLGrammar::Production</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a0ade6e3827c629c3cc3d22a101df7288">Production</a></td></tr>
83
+ <tr class="separator:a0ade6e3827c629c3cc3d22a101df7288"><td class="memSeparator" colspan="2">&#160;</td></tr>
84
+ <tr class="memitem:a06e64c18559b4f311717203ac3fe1fcd"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1GrammarBase.html#a98ae90215ba9aa3ddb0afdab459cb08f">CFLGrammar::Symbol</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a06e64c18559b4f311717203ac3fe1fcd">Symbol</a></td></tr>
85
+ <tr class="separator:a06e64c18559b4f311717203ac3fe1fcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
86
+ </table><table class="memberdecls">
87
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
88
+ Public Member Functions</h2></td></tr>
89
+ <tr class="memitem:a394ecf58da040648dda4adb8d0e7d75b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a394ecf58da040648dda4adb8d0e7d75b">CFLSolver</a> (<a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *_graph, <a class="el" href="classSVF_1_1CFLGrammar.html">CFLGrammar</a> *_grammar)</td></tr>
90
+ <tr class="separator:a394ecf58da040648dda4adb8d0e7d75b"><td class="memSeparator" colspan="2">&#160;</td></tr>
91
+ <tr class="memitem:a59bb656e9fc0f5c29feb2200bc198e41"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a59bb656e9fc0f5c29feb2200bc198e41">~CFLSolver</a> ()</td></tr>
92
+ <tr class="separator:a59bb656e9fc0f5c29feb2200bc198e41"><td class="memSeparator" colspan="2">&#160;</td></tr>
93
+ <tr class="memitem:a2ee3436c26ebdb2aaf790c25b1d8b5a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a2ee3436c26ebdb2aaf790c25b1d8b5a6">solve</a> ()</td></tr>
94
+ <tr class="memdesc:a2ee3436c26ebdb2aaf790c25b1d8b5a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start solving. <a href="#a2ee3436c26ebdb2aaf790c25b1d8b5a6">More...</a><br /></td></tr>
95
+ <tr class="separator:a2ee3436c26ebdb2aaf790c25b1d8b5a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
96
+ <tr class="memitem:a2c6bce1f73bcf5937a26e91a7daba33c"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a2c6bce1f73bcf5937a26e91a7daba33c">getGraph</a> () const</td></tr>
97
+ <tr class="memdesc:a2c6bce1f73bcf5937a26e91a7daba33c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return CFL Graph. <a href="#a2c6bce1f73bcf5937a26e91a7daba33c">More...</a><br /></td></tr>
98
+ <tr class="separator:a2c6bce1f73bcf5937a26e91a7daba33c"><td class="memSeparator" colspan="2">&#160;</td></tr>
99
+ <tr class="memitem:a99c0a6a2c55bb6eb7f8232399374c827"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1CFLGrammar.html">CFLGrammar</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a99c0a6a2c55bb6eb7f8232399374c827">getGrammar</a> () const</td></tr>
100
+ <tr class="memdesc:a99c0a6a2c55bb6eb7f8232399374c827"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return CFL Grammar. <a href="#a99c0a6a2c55bb6eb7f8232399374c827">More...</a><br /></td></tr>
101
+ <tr class="separator:a99c0a6a2c55bb6eb7f8232399374c827"><td class="memSeparator" colspan="2">&#160;</td></tr>
110
102
  </table><table class="memberdecls">
111
103
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
112
104
  Protected Member Functions</h2></td></tr>
113
- <tr class="memitem:ab339e69dd2f2aa2f98fb549e979838af"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#ab339e69dd2f2aa2f98fb549e979838af">CFLSolver</a> ()</td></tr>
114
- <tr class="memdesc:ab339e69dd2f2aa2f98fb549e979838af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#ab339e69dd2f2aa2f98fb549e979838af">More...</a><br /></td></tr>
115
- <tr class="separator:ab339e69dd2f2aa2f98fb549e979838af"><td class="memSeparator" colspan="2">&#160;</td></tr>
116
- <tr class="memitem:ac37d5e6e81edcc0a6c53e02d7d343f5b"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#ac37d5e6e81edcc0a6c53e02d7d343f5b">~CFLSolver</a> ()</td></tr>
117
- <tr class="memdesc:ac37d5e6e81edcc0a6c53e02d7d343f5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="#ac37d5e6e81edcc0a6c53e02d7d343f5b">More...</a><br /></td></tr>
118
- <tr class="separator:ac37d5e6e81edcc0a6c53e02d7d343f5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
119
- <tr class="memitem:adaa8ca9296ec3e9b6ec544a105296d22"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLSolver.html#a7a180d7878fc7b4c055fa72298398127">GNODE</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#adaa8ca9296ec3e9b6ec544a105296d22">getNode</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id) const</td></tr>
120
- <tr class="separator:adaa8ca9296ec3e9b6ec544a105296d22"><td class="memSeparator" colspan="2">&#160;</td></tr>
121
- <tr class="memitem:a31199503d0ed7aff97d4620b3599dea6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a31199503d0ed7aff97d4620b3599dea6">getNodeIDFromItem</a> (const DPIm &amp;item) const</td></tr>
122
- <tr class="separator:a31199503d0ed7aff97d4620b3599dea6"><td class="memSeparator" colspan="2">&#160;</td></tr>
123
- <tr class="memitem:ac9dc4e29fde45a19d42987360ee5f528"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#ac9dc4e29fde45a19d42987360ee5f528">forwardTraverse</a> (DPIm &amp;it)</td></tr>
124
- <tr class="memdesc:ac9dc4e29fde45a19d42987360ee5f528"><td class="mdescLeft">&#160;</td><td class="mdescRight">CFL forward traverse solve. <a href="#ac9dc4e29fde45a19d42987360ee5f528">More...</a><br /></td></tr>
125
- <tr class="separator:ac9dc4e29fde45a19d42987360ee5f528"><td class="memSeparator" colspan="2">&#160;</td></tr>
126
- <tr class="memitem:abf651315ae100f9d4df5d183f7d43c68"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#abf651315ae100f9d4df5d183f7d43c68">backwardTraverse</a> (DPIm &amp;it)</td></tr>
127
- <tr class="memdesc:abf651315ae100f9d4df5d183f7d43c68"><td class="mdescLeft">&#160;</td><td class="mdescRight">CFL forward traverse solve. <a href="#abf651315ae100f9d4df5d183f7d43c68">More...</a><br /></td></tr>
128
- <tr class="separator:abf651315ae100f9d4df5d183f7d43c68"><td class="memSeparator" colspan="2">&#160;</td></tr>
129
- <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
130
- <tr class="memitem:a9fc4cbe8985d4c25845d408ffcac13e4"><td class="memItemLeft" align="right" valign="top">const GraphType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a9fc4cbe8985d4c25845d408ffcac13e4">graph</a> () const</td></tr>
131
- <tr class="memdesc:a9fc4cbe8985d4c25845d408ffcac13e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Set graph methods. <a href="#a9fc4cbe8985d4c25845d408ffcac13e4">More...</a><br /></td></tr>
132
- <tr class="separator:a9fc4cbe8985d4c25845d408ffcac13e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
133
- <tr class="memitem:ae0a02179b2489f65988819666ec52a7c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#ae0a02179b2489f65988819666ec52a7c">setGraph</a> (GraphType g)</td></tr>
134
- <tr class="separator:ae0a02179b2489f65988819666ec52a7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
135
- <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
136
- <tr class="memitem:a6d7361281bbf666a2f5da87f7ea869d2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a6d7361281bbf666a2f5da87f7ea869d2">FWProcessCurNode</a> (const DPIm &amp;)</td></tr>
137
- <tr class="memdesc:a6d7361281bbf666a2f5da87f7ea869d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process the DP item. <a href="#a6d7361281bbf666a2f5da87f7ea869d2">More...</a><br /></td></tr>
138
- <tr class="separator:a6d7361281bbf666a2f5da87f7ea869d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
139
- <tr class="memitem:ab444cce6a5c75c7e6c65d47039e567a8"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#ab444cce6a5c75c7e6c65d47039e567a8">BWProcessCurNode</a> (const DPIm &amp;)</td></tr>
140
- <tr class="separator:ab444cce6a5c75c7e6c65d47039e567a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
141
105
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
142
- <tr class="memitem:a39b079c9b8a1b4570176028de79e85a4"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a39b079c9b8a1b4570176028de79e85a4">FWProcessOutgoingEdge</a> (const DPIm &amp;item, <a class="el" href="classSVF_1_1CFLSolver.html#aaddd6c593ad39c117bd35ede711b9f36">GEDGE</a> *edge)</td></tr>
143
- <tr class="memdesc:a39b079c9b8a1b4570176028de79e85a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Propagation for the solving, to be implemented in the child class. <a href="#a39b079c9b8a1b4570176028de79e85a4">More...</a><br /></td></tr>
144
- <tr class="separator:a39b079c9b8a1b4570176028de79e85a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
145
- <tr class="memitem:a3d5550fbb149297022d5a1852f3229b3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a3d5550fbb149297022d5a1852f3229b3">BWProcessIncomingEdge</a> (const DPIm &amp;item, <a class="el" href="classSVF_1_1CFLSolver.html#aaddd6c593ad39c117bd35ede711b9f36">GEDGE</a> *edge)</td></tr>
146
- <tr class="separator:a3d5550fbb149297022d5a1852f3229b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
147
- <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
148
- <tr class="memitem:a88f770b4762d44e50d72cd50bb504078"><td class="memItemLeft" align="right" valign="top">DPIm&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a88f770b4762d44e50d72cd50bb504078">popFromWorklist</a> ()</td></tr>
149
- <tr class="memdesc:a88f770b4762d44e50d72cd50bb504078"><td class="mdescLeft">&#160;</td><td class="mdescRight">Worklist operations. <a href="#a88f770b4762d44e50d72cd50bb504078">More...</a><br /></td></tr>
150
- <tr class="separator:a88f770b4762d44e50d72cd50bb504078"><td class="memSeparator" colspan="2">&#160;</td></tr>
151
- <tr class="memitem:a28cd2677717b19c9cd8ab3c1c441d409"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a28cd2677717b19c9cd8ab3c1c441d409">pushIntoWorklist</a> (DPIm &amp;item)</td></tr>
152
- <tr class="separator:a28cd2677717b19c9cd8ab3c1c441d409"><td class="memSeparator" colspan="2">&#160;</td></tr>
153
- <tr class="memitem:a4f35edfc7c4e4a35c9948ab5abd1a6ad"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a4f35edfc7c4e4a35c9948ab5abd1a6ad">isWorklistEmpty</a> ()</td></tr>
154
- <tr class="separator:a4f35edfc7c4e4a35c9948ab5abd1a6ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
155
- <tr class="memitem:a435454f52e5be39c960052f1947b984d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a435454f52e5be39c960052f1947b984d">isInWorklist</a> (DPIm &amp;item)</td></tr>
156
- <tr class="separator:a435454f52e5be39c960052f1947b984d"><td class="memSeparator" colspan="2">&#160;</td></tr>
106
+ <tr class="memitem:a95573e91816f426ff7b45afb7b7c821e"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1CFLEdge.html">CFLEdge</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a95573e91816f426ff7b45afb7b7c821e">popFromWorklist</a> ()</td></tr>
107
+ <tr class="memdesc:a95573e91816f426ff7b45afb7b7c821e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Worklist operations. <a href="#a95573e91816f426ff7b45afb7b7c821e">More...</a><br /></td></tr>
108
+ <tr class="separator:a95573e91816f426ff7b45afb7b7c821e"><td class="memSeparator" colspan="2">&#160;</td></tr>
109
+ <tr class="memitem:afc745dc72fd0572a145a78fe6a93ae5c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">pushIntoWorklist</a> (const <a class="el" href="classSVF_1_1CFLEdge.html">CFLEdge</a> *item)</td></tr>
110
+ <tr class="separator:afc745dc72fd0572a145a78fe6a93ae5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
111
+ <tr class="memitem:ac1fe4563081c29f8a715bd67d454c8bb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#ac1fe4563081c29f8a715bd67d454c8bb">isWorklistEmpty</a> ()</td></tr>
112
+ <tr class="separator:ac1fe4563081c29f8a715bd67d454c8bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
113
+ <tr class="memitem:a0e112c2290b3ba4e61da6b1fe9ac506d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a0e112c2290b3ba4e61da6b1fe9ac506d">isInWorklist</a> (const <a class="el" href="classSVF_1_1CFLEdge.html">CFLEdge</a> *item)</td></tr>
114
+ <tr class="separator:a0e112c2290b3ba4e61da6b1fe9ac506d"><td class="memSeparator" colspan="2">&#160;</td></tr>
157
115
  </table><table class="memberdecls">
158
116
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
159
117
  Private Attributes</h2></td></tr>
160
- <tr class="memitem:a26e81753961ccb80b08d5c3ef7c4a141"><td class="memItemLeft" align="right" valign="top">GraphType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a26e81753961ccb80b08d5c3ef7c4a141">_graph</a></td></tr>
161
- <tr class="memdesc:a26e81753961ccb80b08d5c3ef7c4a141"><td class="mdescLeft">&#160;</td><td class="mdescRight">Graph. <a href="#a26e81753961ccb80b08d5c3ef7c4a141">More...</a><br /></td></tr>
162
- <tr class="separator:a26e81753961ccb80b08d5c3ef7c4a141"><td class="memSeparator" colspan="2">&#160;</td></tr>
163
- <tr class="memitem:a9d3cbcb9db049e3069b6553ab17ccf5b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLSolver.html#a802e04eafce9adfd60506c44951c3d53">WorkList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a9d3cbcb9db049e3069b6553ab17ccf5b">worklist</a></td></tr>
164
- <tr class="memdesc:a9d3cbcb9db049e3069b6553ab17ccf5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Worklist for resolution. <a href="#a9d3cbcb9db049e3069b6553ab17ccf5b">More...</a><br /></td></tr>
165
- <tr class="separator:a9d3cbcb9db049e3069b6553ab17ccf5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
118
+ <tr class="memitem:aedd6c605c4c381c738f4c6682c40d9f2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#aedd6c605c4c381c738f4c6682c40d9f2">graph</a></td></tr>
119
+ <tr class="separator:aedd6c605c4c381c738f4c6682c40d9f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
120
+ <tr class="memitem:aad88cf557ec43127de859b765505df49"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGrammar.html">CFLGrammar</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">grammar</a></td></tr>
121
+ <tr class="separator:aad88cf557ec43127de859b765505df49"><td class="memSeparator" colspan="2">&#160;</td></tr>
122
+ <tr class="memitem:a211bb78846886aa9ccd4b160da81e02e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLSolver.html#a194d2c4c801799b0ba9562e33ca5b695">WorkList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">worklist</a></td></tr>
123
+ <tr class="memdesc:a211bb78846886aa9ccd4b160da81e02e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Worklist for resolution. <a href="#a211bb78846886aa9ccd4b160da81e02e">More...</a><br /></td></tr>
124
+ <tr class="separator:a211bb78846886aa9ccd4b160da81e02e"><td class="memSeparator" colspan="2">&#160;</td></tr>
166
125
  </table>
167
126
  <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
168
- <div class="textblock"><h3>template&lt;class GraphType, class DPIm = DPItem&gt;<br />
169
- class SVF::CFLSolver&lt; GraphType, DPIm &gt;</h3>
170
-
171
-
172
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00044">44</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
127
+ <div class="textblock">
128
+ <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00037">37</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
173
129
  </div><h2 class="groupheader">Member Typedef Documentation</h2>
174
- <a id="adf0b96a758a29d5c3c46fcc48081b62c"></a>
175
- <h2 class="memtitle"><span class="permalink"><a href="#adf0b96a758a29d5c3c46fcc48081b62c">&#9670;&nbsp;</a></span>child_iterator</h2>
130
+ <a id="a0ade6e3827c629c3cc3d22a101df7288"></a>
131
+ <h2 class="memtitle"><span class="permalink"><a href="#a0ade6e3827c629c3cc3d22a101df7288">&#9670;&nbsp;</a></span>Production</h2>
176
132
 
177
133
  <div class="memitem">
178
134
  <div class="memproto">
179
- <div class="memtemplate">
180
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
181
135
  <table class="memname">
182
136
  <tr>
183
- <td class="memname">typedef GTraits::ChildIteratorType <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::<a class="el" href="classSVF_1_1CFLSolver.html#adf0b96a758a29d5c3c46fcc48081b62c">child_iterator</a></td>
137
+ <td class="memname">typedef <a class="el" href="classSVF_1_1GrammarBase.html#af384c960a5edc576cbfb60a869e346ec">CFLGrammar::Production</a> <a class="el" href="classSVF_1_1CFLSolver.html#a0ade6e3827c629c3cc3d22a101df7288">SVF::CFLSolver::Production</a></td>
184
138
  </tr>
185
139
  </table>
186
140
  </div><div class="memdoc">
187
141
 
188
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00053">53</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
142
+ <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00042">42</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
189
143
 
190
144
  </div>
191
145
  </div>
192
- <a id="aaddd6c593ad39c117bd35ede711b9f36"></a>
193
- <h2 class="memtitle"><span class="permalink"><a href="#aaddd6c593ad39c117bd35ede711b9f36">&#9670;&nbsp;</a></span>GEDGE</h2>
146
+ <a id="a06e64c18559b4f311717203ac3fe1fcd"></a>
147
+ <h2 class="memtitle"><span class="permalink"><a href="#a06e64c18559b4f311717203ac3fe1fcd">&#9670;&nbsp;</a></span>Symbol</h2>
194
148
 
195
149
  <div class="memitem">
196
150
  <div class="memproto">
197
- <div class="memtemplate">
198
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
199
151
  <table class="memname">
200
152
  <tr>
201
- <td class="memname">typedef GTraits::EdgeType <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::<a class="el" href="classSVF_1_1CFLSolver.html#aaddd6c593ad39c117bd35ede711b9f36">GEDGE</a></td>
153
+ <td class="memname">typedef <a class="el" href="classSVF_1_1GrammarBase.html#a98ae90215ba9aa3ddb0afdab459cb08f">CFLGrammar::Symbol</a> <a class="el" href="classSVF_1_1CFLSolver.html#a06e64c18559b4f311717203ac3fe1fcd">SVF::CFLSolver::Symbol</a></td>
202
154
  </tr>
203
155
  </table>
204
156
  </div><div class="memdoc">
205
157
 
206
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00051">51</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
158
+ <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00043">43</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
207
159
 
208
160
  </div>
209
161
  </div>
210
- <a id="a7a180d7878fc7b4c055fa72298398127"></a>
211
- <h2 class="memtitle"><span class="permalink"><a href="#a7a180d7878fc7b4c055fa72298398127">&#9670;&nbsp;</a></span>GNODE</h2>
162
+ <a id="a194d2c4c801799b0ba9562e33ca5b695"></a>
163
+ <h2 class="memtitle"><span class="permalink"><a href="#a194d2c4c801799b0ba9562e33ca5b695">&#9670;&nbsp;</a></span>WorkList</h2>
212
164
 
213
165
  <div class="memitem">
214
166
  <div class="memproto">
215
- <div class="memtemplate">
216
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
217
167
  <table class="memname">
218
168
  <tr>
219
- <td class="memname">typedef GTraits::NodeType <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::<a class="el" href="classSVF_1_1CFLSolver.html#a7a180d7878fc7b4c055fa72298398127">GNODE</a></td>
220
- </tr>
221
- </table>
222
- </div><div class="memdoc">
223
-
224
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00050">50</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
225
-
226
- </div>
227
- </div>
228
- <a id="afdead1450dbc71d4430ab660733ff85c"></a>
229
- <h2 class="memtitle"><span class="permalink"><a href="#afdead1450dbc71d4430ab660733ff85c">&#9670;&nbsp;</a></span>GTraits</h2>
230
-
231
- <div class="memitem">
232
- <div class="memproto">
233
- <div class="memtemplate">
234
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
235
- <table class="memname">
236
- <tr>
237
- <td class="memname">typedef llvm::GraphTraits&lt;GraphType&gt; <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::<a class="el" href="classSVF_1_1CFLSolver.html#afdead1450dbc71d4430ab660733ff85c">GTraits</a></td>
238
- </tr>
239
- </table>
240
- </div><div class="memdoc">
241
-
242
- <p>Define the GTraits and node iterator. </p>
243
-
244
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00049">49</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
245
-
246
- </div>
247
- </div>
248
- <a id="a98613e4d455a53183d1f16a58de6244e"></a>
249
- <h2 class="memtitle"><span class="permalink"><a href="#a98613e4d455a53183d1f16a58de6244e">&#9670;&nbsp;</a></span>inv_child_iterator</h2>
250
-
251
- <div class="memitem">
252
- <div class="memproto">
253
- <div class="memtemplate">
254
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
255
- <table class="memname">
256
- <tr>
257
- <td class="memname">typedef InvGTraits::ChildIteratorType <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::<a class="el" href="classSVF_1_1CFLSolver.html#a98613e4d455a53183d1f16a58de6244e">inv_child_iterator</a></td>
258
- </tr>
259
- </table>
260
- </div><div class="memdoc">
261
-
262
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00057">57</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
263
-
264
- </div>
265
- </div>
266
- <a id="ae507eecc97716000324820bb1a7a9573"></a>
267
- <h2 class="memtitle"><span class="permalink"><a href="#ae507eecc97716000324820bb1a7a9573">&#9670;&nbsp;</a></span>InvGTraits</h2>
268
-
269
- <div class="memitem">
270
- <div class="memproto">
271
- <div class="memtemplate">
272
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
273
- <table class="memname">
274
- <tr>
275
- <td class="memname">typedef llvm::GraphTraits&lt;llvm::Inverse&lt;<a class="el" href="classSVF_1_1CFLSolver.html#a7a180d7878fc7b4c055fa72298398127">GNODE</a> *&gt; &gt; <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::<a class="el" href="classSVF_1_1CFLSolver.html#ae507eecc97716000324820bb1a7a9573">InvGTraits</a></td>
276
- </tr>
277
- </table>
278
- </div><div class="memdoc">
279
-
280
- <p>Define inverse GTraits and note iterator. </p>
281
-
282
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00056">56</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
283
-
284
- </div>
285
- </div>
286
- <a id="a586cfb2dd110d1853e70e534e0f66624"></a>
287
- <h2 class="memtitle"><span class="permalink"><a href="#a586cfb2dd110d1853e70e534e0f66624">&#9670;&nbsp;</a></span>node_iterator</h2>
288
-
289
- <div class="memitem">
290
- <div class="memproto">
291
- <div class="memtemplate">
292
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
293
- <table class="memname">
294
- <tr>
295
- <td class="memname">typedef GTraits::nodes_iterator <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::<a class="el" href="classSVF_1_1CFLSolver.html#a586cfb2dd110d1853e70e534e0f66624">node_iterator</a></td>
296
- </tr>
297
- </table>
298
- </div><div class="memdoc">
299
-
300
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00052">52</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
301
-
302
- </div>
303
- </div>
304
- <a id="a802e04eafce9adfd60506c44951c3d53"></a>
305
- <h2 class="memtitle"><span class="permalink"><a href="#a802e04eafce9adfd60506c44951c3d53">&#9670;&nbsp;</a></span>WorkList</h2>
306
-
307
- <div class="memitem">
308
- <div class="memproto">
309
- <div class="memtemplate">
310
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
311
- <table class="memname">
312
- <tr>
313
- <td class="memname">typedef <a class="el" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList</a>&lt;DPIm&gt; <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::<a class="el" href="classSVF_1_1CFLSolver.html#a802e04eafce9adfd60506c44951c3d53">WorkList</a></td>
169
+ <td class="memname">typedef <a class="el" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList</a>&lt;const <a class="el" href="classSVF_1_1CFLEdge.html">CFLEdge</a>*&gt; <a class="el" href="classSVF_1_1CFLSolver.html#a194d2c4c801799b0ba9562e33ca5b695">SVF::CFLSolver::WorkList</a></td>
314
170
  </tr>
315
171
  </table>
316
172
  </div><div class="memdoc">
317
173
 
318
174
  <p>Define worklist. </p>
319
175
 
320
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00060">60</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
176
+ <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00041">41</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
321
177
 
322
178
  </div>
323
179
  </div>
324
180
  <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
325
- <a id="ab339e69dd2f2aa2f98fb549e979838af"></a>
326
- <h2 class="memtitle"><span class="permalink"><a href="#ab339e69dd2f2aa2f98fb549e979838af">&#9670;&nbsp;</a></span>CFLSolver()</h2>
327
-
328
- <div class="memitem">
329
- <div class="memproto">
330
- <div class="memtemplate">
331
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
332
- <table class="mlabels">
333
- <tr>
334
- <td class="mlabels-left">
335
- <table class="memname">
336
- <tr>
337
- <td class="memname"><a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::<a class="el" href="classSVF_1_1CFLSolver.html">CFLSolver</a> </td>
338
- <td>(</td>
339
- <td class="paramname"></td><td>)</td>
340
- <td></td>
341
- </tr>
342
- </table>
343
- </td>
344
- <td class="mlabels-right">
345
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
346
- </tr>
347
- </table>
348
- </div><div class="memdoc">
349
-
350
- <p>Constructor. </p>
351
-
352
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00065">65</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
353
- <div class="fragment"><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; : <a class="code" href="classSVF_1_1CFLSolver.html#a26e81753961ccb80b08d5c3ef7c4a141">_graph</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_a26e81753961ccb80b08d5c3ef7c4a141"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a26e81753961ccb80b08d5c3ef7c4a141">SVF::CFLSolver::_graph</a></div><div class="ttdeci">GraphType _graph</div><div class="ttdoc">Graph. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00177">CFLSolver.h:177</a></div></div>
354
- </div><!-- fragment -->
355
- </div>
356
- </div>
357
- <a id="ac37d5e6e81edcc0a6c53e02d7d343f5b"></a>
358
- <h2 class="memtitle"><span class="permalink"><a href="#ac37d5e6e81edcc0a6c53e02d7d343f5b">&#9670;&nbsp;</a></span>~CFLSolver()</h2>
181
+ <a id="a394ecf58da040648dda4adb8d0e7d75b"></a>
182
+ <h2 class="memtitle"><span class="permalink"><a href="#a394ecf58da040648dda4adb8d0e7d75b">&#9670;&nbsp;</a></span>CFLSolver()</h2>
359
183
 
360
184
  <div class="memitem">
361
185
  <div class="memproto">
362
- <div class="memtemplate">
363
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
364
186
  <table class="mlabels">
365
187
  <tr>
366
188
  <td class="mlabels-left">
367
189
  <table class="memname">
368
190
  <tr>
369
- <td class="memname">virtual <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::~<a class="el" href="classSVF_1_1CFLSolver.html">CFLSolver</a> </td>
191
+ <td class="memname">SVF::CFLSolver::CFLSolver </td>
370
192
  <td>(</td>
371
- <td class="paramname"></td><td>)</td>
372
- <td></td>
373
- </tr>
374
- </table>
375
- </td>
376
- <td class="mlabels-right">
377
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
378
- </tr>
379
- </table>
380
- </div><div class="memdoc">
381
-
382
- <p>Destructor. </p>
383
-
384
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00069">69</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
385
- <div class="fragment"><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div></div><!-- fragment -->
386
- </div>
387
- </div>
388
- <h2 class="groupheader">Member Function Documentation</h2>
389
- <a id="abf651315ae100f9d4df5d183f7d43c68"></a>
390
- <h2 class="memtitle"><span class="permalink"><a href="#abf651315ae100f9d4df5d183f7d43c68">&#9670;&nbsp;</a></span>backwardTraverse()</h2>
391
-
392
- <div class="memitem">
393
- <div class="memproto">
394
- <div class="memtemplate">
395
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
396
- <table class="mlabels">
397
- <tr>
398
- <td class="mlabels-left">
399
- <table class="memname">
400
- <tr>
401
- <td class="memname">virtual void <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::backwardTraverse </td>
402
- <td>(</td>
403
- <td class="paramtype">DPIm &amp;&#160;</td>
404
- <td class="paramname"><em>it</em></td><td>)</td>
405
- <td></td>
406
- </tr>
407
- </table>
408
- </td>
409
- <td class="mlabels-right">
410
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
411
- </tr>
412
- </table>
413
- </div><div class="memdoc">
414
-
415
- <p>CFL forward traverse solve. </p>
416
-
417
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00112">112</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
418
- <div class="fragment"><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a28cd2677717b19c9cd8ab3c1c441d409">pushIntoWorklist</a>(it);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">while</span> (!<a class="code" href="classSVF_1_1CFLSolver.html#a4f35edfc7c4e4a35c9948ab5abd1a6ad">isWorklistEmpty</a>())</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; DPIm item = <a class="code" href="classSVF_1_1CFLSolver.html#a88f770b4762d44e50d72cd50bb504078">popFromWorklist</a>();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#ab444cce6a5c75c7e6c65d47039e567a8">BWProcessCurNode</a>(item);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a7a180d7878fc7b4c055fa72298398127">GNODE</a>* v = <a class="code" href="classSVF_1_1CFLSolver.html#adaa8ca9296ec3e9b6ec544a105296d22">getNode</a>(<a class="code" href="classSVF_1_1CFLSolver.html#a31199503d0ed7aff97d4620b3599dea6">getNodeIDFromItem</a>(item));</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a98613e4d455a53183d1f16a58de6244e">inv_child_iterator</a> EI = InvGTraits::child_begin(v);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a98613e4d455a53183d1f16a58de6244e">inv_child_iterator</a> EE = InvGTraits::child_end(v);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">for</span> (; EI != EE; ++EI)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a3d5550fbb149297022d5a1852f3229b3">BWProcessIncomingEdge</a>(item,*(EI.getCurrent()) );</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_adaa8ca9296ec3e9b6ec544a105296d22"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#adaa8ca9296ec3e9b6ec544a105296d22">SVF::CFLSolver::getNode</a></div><div class="ttdeci">GNODE * getNode(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00084">CFLSolver.h:84</a></div></div>
419
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a3d5550fbb149297022d5a1852f3229b3"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a3d5550fbb149297022d5a1852f3229b3">SVF::CFLSolver::BWProcessIncomingEdge</a></div><div class="ttdeci">virtual void BWProcessIncomingEdge(const DPIm &amp;item, GEDGE *edge)</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00147">CFLSolver.h:147</a></div></div>
420
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a4f35edfc7c4e4a35c9948ab5abd1a6ad"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a4f35edfc7c4e4a35c9948ab5abd1a6ad">SVF::CFLSolver::isWorklistEmpty</a></div><div class="ttdeci">bool isWorklistEmpty()</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00164">CFLSolver.h:164</a></div></div>
421
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a28cd2677717b19c9cd8ab3c1c441d409"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a28cd2677717b19c9cd8ab3c1c441d409">SVF::CFLSolver::pushIntoWorklist</a></div><div class="ttdeci">bool pushIntoWorklist(DPIm &amp;item)</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00160">CFLSolver.h:160</a></div></div>
422
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a31199503d0ed7aff97d4620b3599dea6"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a31199503d0ed7aff97d4620b3599dea6">SVF::CFLSolver::getNodeIDFromItem</a></div><div class="ttdeci">virtual NodeID getNodeIDFromItem(const DPIm &amp;item) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00088">CFLSolver.h:88</a></div></div>
423
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a7a180d7878fc7b4c055fa72298398127"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a7a180d7878fc7b4c055fa72298398127">SVF::CFLSolver::GNODE</a></div><div class="ttdeci">GTraits::NodeType GNODE</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00050">CFLSolver.h:50</a></div></div>
424
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a98613e4d455a53183d1f16a58de6244e"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a98613e4d455a53183d1f16a58de6244e">SVF::CFLSolver::inv_child_iterator</a></div><div class="ttdeci">InvGTraits::ChildIteratorType inv_child_iterator</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00057">CFLSolver.h:57</a></div></div>
425
- <div class="ttc" id="classSVF_1_1CFLSolver_html_ab444cce6a5c75c7e6c65d47039e567a8"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#ab444cce6a5c75c7e6c65d47039e567a8">SVF::CFLSolver::BWProcessCurNode</a></div><div class="ttdeci">virtual void BWProcessCurNode(const DPIm &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00135">CFLSolver.h:135</a></div></div>
426
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a88f770b4762d44e50d72cd50bb504078"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a88f770b4762d44e50d72cd50bb504078">SVF::CFLSolver::popFromWorklist</a></div><div class="ttdeci">DPIm popFromWorklist()</div><div class="ttdoc">Worklist operations. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00156">CFLSolver.h:156</a></div></div>
427
- </div><!-- fragment -->
428
- </div>
429
- </div>
430
- <a id="ab444cce6a5c75c7e6c65d47039e567a8"></a>
431
- <h2 class="memtitle"><span class="permalink"><a href="#ab444cce6a5c75c7e6c65d47039e567a8">&#9670;&nbsp;</a></span>BWProcessCurNode()</h2>
432
-
433
- <div class="memitem">
434
- <div class="memproto">
435
- <div class="memtemplate">
436
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
437
- <table class="mlabels">
438
- <tr>
439
- <td class="mlabels-left">
440
- <table class="memname">
441
- <tr>
442
- <td class="memname">virtual void <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::BWProcessCurNode </td>
443
- <td>(</td>
444
- <td class="paramtype">const DPIm &amp;&#160;</td>
445
- <td class="paramname"></td><td>)</td>
446
- <td></td>
447
- </tr>
448
- </table>
449
- </td>
450
- <td class="mlabels-right">
451
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
452
- </tr>
453
- </table>
454
- </div><div class="memdoc">
455
-
456
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00135">135</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
457
- <div class="fragment"><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div></div><!-- fragment -->
458
- </div>
459
- </div>
460
- <a id="a3d5550fbb149297022d5a1852f3229b3"></a>
461
- <h2 class="memtitle"><span class="permalink"><a href="#a3d5550fbb149297022d5a1852f3229b3">&#9670;&nbsp;</a></span>BWProcessIncomingEdge()</h2>
462
-
463
- <div class="memitem">
464
- <div class="memproto">
465
- <div class="memtemplate">
466
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
467
- <table class="mlabels">
468
- <tr>
469
- <td class="mlabels-left">
470
- <table class="memname">
471
- <tr>
472
- <td class="memname">virtual void <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::BWProcessIncomingEdge </td>
473
- <td>(</td>
474
- <td class="paramtype">const DPIm &amp;&#160;</td>
475
- <td class="paramname"><em>item</em>, </td>
193
+ <td class="paramtype"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *&#160;</td>
194
+ <td class="paramname"><em>_graph</em>, </td>
476
195
  </tr>
477
196
  <tr>
478
197
  <td class="paramkey"></td>
479
198
  <td></td>
480
- <td class="paramtype"><a class="el" href="classSVF_1_1CFLSolver.html#aaddd6c593ad39c117bd35ede711b9f36">GEDGE</a> *&#160;</td>
481
- <td class="paramname"><em>edge</em>&#160;</td>
199
+ <td class="paramtype"><a class="el" href="classSVF_1_1CFLGrammar.html">CFLGrammar</a> *&#160;</td>
200
+ <td class="paramname"><em>_grammar</em>&#160;</td>
482
201
  </tr>
483
202
  <tr>
484
203
  <td></td>
@@ -488,209 +207,120 @@ template&lt;class GraphType , class DPIm = DPItem&gt; </div>
488
207
  </table>
489
208
  </td>
490
209
  <td class="mlabels-right">
491
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
492
- </tr>
493
- </table>
494
- </div><div class="memdoc">
495
-
496
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00147">147</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
497
- <div class="fragment"><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; DPIm newItem(item);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; newItem.setCurNodeID(edge-&gt;getSrcID());</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a28cd2677717b19c9cd8ab3c1c441d409">pushIntoWorklist</a>(newItem);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_a28cd2677717b19c9cd8ab3c1c441d409"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a28cd2677717b19c9cd8ab3c1c441d409">SVF::CFLSolver::pushIntoWorklist</a></div><div class="ttdeci">bool pushIntoWorklist(DPIm &amp;item)</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00160">CFLSolver.h:160</a></div></div>
498
- </div><!-- fragment -->
499
- </div>
500
- </div>
501
- <a id="ac9dc4e29fde45a19d42987360ee5f528"></a>
502
- <h2 class="memtitle"><span class="permalink"><a href="#ac9dc4e29fde45a19d42987360ee5f528">&#9670;&nbsp;</a></span>forwardTraverse()</h2>
503
-
504
- <div class="memitem">
505
- <div class="memproto">
506
- <div class="memtemplate">
507
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
508
- <table class="mlabels">
509
- <tr>
510
- <td class="mlabels-left">
511
- <table class="memname">
512
- <tr>
513
- <td class="memname">virtual void <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::forwardTraverse </td>
514
- <td>(</td>
515
- <td class="paramtype">DPIm &amp;&#160;</td>
516
- <td class="paramname"><em>it</em></td><td>)</td>
517
- <td></td>
518
- </tr>
519
- </table>
520
- </td>
521
- <td class="mlabels-right">
522
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
210
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
523
211
  </tr>
524
212
  </table>
525
213
  </div><div class="memdoc">
526
214
 
527
- <p>CFL forward traverse solve. </p>
528
-
529
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00093">93</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
530
- <div class="fragment"><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a28cd2677717b19c9cd8ab3c1c441d409">pushIntoWorklist</a>(it);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">while</span> (!<a class="code" href="classSVF_1_1CFLSolver.html#a4f35edfc7c4e4a35c9948ab5abd1a6ad">isWorklistEmpty</a>())</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; DPIm item = <a class="code" href="classSVF_1_1CFLSolver.html#a88f770b4762d44e50d72cd50bb504078">popFromWorklist</a>();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a6d7361281bbf666a2f5da87f7ea869d2">FWProcessCurNode</a>(item);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a7a180d7878fc7b4c055fa72298398127">GNODE</a>* v = <a class="code" href="classSVF_1_1CFLSolver.html#adaa8ca9296ec3e9b6ec544a105296d22">getNode</a>(<a class="code" href="classSVF_1_1CFLSolver.html#a31199503d0ed7aff97d4620b3599dea6">getNodeIDFromItem</a>(item));</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#adf0b96a758a29d5c3c46fcc48081b62c">child_iterator</a> EI = GTraits::child_begin(v);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#adf0b96a758a29d5c3c46fcc48081b62c">child_iterator</a> EE = GTraits::child_end(v);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">for</span> (; EI != EE; ++EI)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a39b079c9b8a1b4570176028de79e85a4">FWProcessOutgoingEdge</a>(item,*(EI.getCurrent()) );</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_adaa8ca9296ec3e9b6ec544a105296d22"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#adaa8ca9296ec3e9b6ec544a105296d22">SVF::CFLSolver::getNode</a></div><div class="ttdeci">GNODE * getNode(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00084">CFLSolver.h:84</a></div></div>
531
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a39b079c9b8a1b4570176028de79e85a4"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a39b079c9b8a1b4570176028de79e85a4">SVF::CFLSolver::FWProcessOutgoingEdge</a></div><div class="ttdeci">virtual void FWProcessOutgoingEdge(const DPIm &amp;item, GEDGE *edge)</div><div class="ttdoc">Propagation for the solving, to be implemented in the child class. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00141">CFLSolver.h:141</a></div></div>
532
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a6d7361281bbf666a2f5da87f7ea869d2"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a6d7361281bbf666a2f5da87f7ea869d2">SVF::CFLSolver::FWProcessCurNode</a></div><div class="ttdeci">virtual void FWProcessCurNode(const DPIm &amp;)</div><div class="ttdoc">Process the DP item. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00132">CFLSolver.h:132</a></div></div>
533
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a4f35edfc7c4e4a35c9948ab5abd1a6ad"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a4f35edfc7c4e4a35c9948ab5abd1a6ad">SVF::CFLSolver::isWorklistEmpty</a></div><div class="ttdeci">bool isWorklistEmpty()</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00164">CFLSolver.h:164</a></div></div>
534
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a28cd2677717b19c9cd8ab3c1c441d409"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a28cd2677717b19c9cd8ab3c1c441d409">SVF::CFLSolver::pushIntoWorklist</a></div><div class="ttdeci">bool pushIntoWorklist(DPIm &amp;item)</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00160">CFLSolver.h:160</a></div></div>
535
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a31199503d0ed7aff97d4620b3599dea6"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a31199503d0ed7aff97d4620b3599dea6">SVF::CFLSolver::getNodeIDFromItem</a></div><div class="ttdeci">virtual NodeID getNodeIDFromItem(const DPIm &amp;item) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00088">CFLSolver.h:88</a></div></div>
536
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a7a180d7878fc7b4c055fa72298398127"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a7a180d7878fc7b4c055fa72298398127">SVF::CFLSolver::GNODE</a></div><div class="ttdeci">GTraits::NodeType GNODE</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00050">CFLSolver.h:50</a></div></div>
537
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a88f770b4762d44e50d72cd50bb504078"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a88f770b4762d44e50d72cd50bb504078">SVF::CFLSolver::popFromWorklist</a></div><div class="ttdeci">DPIm popFromWorklist()</div><div class="ttdoc">Worklist operations. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00156">CFLSolver.h:156</a></div></div>
538
- <div class="ttc" id="classSVF_1_1CFLSolver_html_adf0b96a758a29d5c3c46fcc48081b62c"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#adf0b96a758a29d5c3c46fcc48081b62c">SVF::CFLSolver::child_iterator</a></div><div class="ttdeci">GTraits::ChildIteratorType child_iterator</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00053">CFLSolver.h:53</a></div></div>
215
+ <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00045">45</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
216
+ <div class="fragment"><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; : <a class="code" href="classSVF_1_1CFLSolver.html#aedd6c605c4c381c738f4c6682c40d9f2">graph</a>(_graph), <a class="code" href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">grammar</a>(_grammar)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_aedd6c605c4c381c738f4c6682c40d9f2"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#aedd6c605c4c381c738f4c6682c40d9f2">SVF::CFLSolver::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00088">CFLSolver.h:88</a></div></div>
217
+ <div class="ttc" id="classSVF_1_1CFLSolver_html_aad88cf557ec43127de859b765505df49"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">SVF::CFLSolver::grammar</a></div><div class="ttdeci">CFLGrammar * grammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00089">CFLSolver.h:89</a></div></div>
539
218
  </div><!-- fragment -->
540
219
  </div>
541
220
  </div>
542
- <a id="a6d7361281bbf666a2f5da87f7ea869d2"></a>
543
- <h2 class="memtitle"><span class="permalink"><a href="#a6d7361281bbf666a2f5da87f7ea869d2">&#9670;&nbsp;</a></span>FWProcessCurNode()</h2>
221
+ <a id="a59bb656e9fc0f5c29feb2200bc198e41"></a>
222
+ <h2 class="memtitle"><span class="permalink"><a href="#a59bb656e9fc0f5c29feb2200bc198e41">&#9670;&nbsp;</a></span>~CFLSolver()</h2>
544
223
 
545
224
  <div class="memitem">
546
225
  <div class="memproto">
547
- <div class="memtemplate">
548
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
549
226
  <table class="mlabels">
550
227
  <tr>
551
228
  <td class="mlabels-left">
552
229
  <table class="memname">
553
230
  <tr>
554
- <td class="memname">virtual void <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::FWProcessCurNode </td>
231
+ <td class="memname">SVF::CFLSolver::~CFLSolver </td>
555
232
  <td>(</td>
556
- <td class="paramtype">const DPIm &amp;&#160;</td>
557
233
  <td class="paramname"></td><td>)</td>
558
234
  <td></td>
559
235
  </tr>
560
236
  </table>
561
237
  </td>
562
238
  <td class="mlabels-right">
563
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
239
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
564
240
  </tr>
565
241
  </table>
566
242
  </div><div class="memdoc">
567
243
 
568
- <p>Process the DP item. </p>
569
-
570
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00132">132</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
571
- <div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div></div><!-- fragment -->
244
+ <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00049">49</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
245
+ <div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div></div><!-- fragment -->
572
246
  </div>
573
247
  </div>
574
- <a id="a39b079c9b8a1b4570176028de79e85a4"></a>
575
- <h2 class="memtitle"><span class="permalink"><a href="#a39b079c9b8a1b4570176028de79e85a4">&#9670;&nbsp;</a></span>FWProcessOutgoingEdge()</h2>
248
+ <h2 class="groupheader">Member Function Documentation</h2>
249
+ <a id="a99c0a6a2c55bb6eb7f8232399374c827"></a>
250
+ <h2 class="memtitle"><span class="permalink"><a href="#a99c0a6a2c55bb6eb7f8232399374c827">&#9670;&nbsp;</a></span>getGrammar()</h2>
576
251
 
577
252
  <div class="memitem">
578
253
  <div class="memproto">
579
- <div class="memtemplate">
580
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
581
254
  <table class="mlabels">
582
255
  <tr>
583
256
  <td class="mlabels-left">
584
257
  <table class="memname">
585
258
  <tr>
586
- <td class="memname">virtual void <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::FWProcessOutgoingEdge </td>
259
+ <td class="memname">const <a class="el" href="classSVF_1_1CFLGrammar.html">CFLGrammar</a>* SVF::CFLSolver::getGrammar </td>
587
260
  <td>(</td>
588
- <td class="paramtype">const DPIm &amp;&#160;</td>
589
- <td class="paramname"><em>item</em>, </td>
590
- </tr>
591
- <tr>
592
- <td class="paramkey"></td>
593
- <td></td>
594
- <td class="paramtype"><a class="el" href="classSVF_1_1CFLSolver.html#aaddd6c593ad39c117bd35ede711b9f36">GEDGE</a> *&#160;</td>
595
- <td class="paramname"><em>edge</em>&#160;</td>
596
- </tr>
597
- <tr>
598
- <td></td>
599
- <td>)</td>
600
- <td></td><td></td>
261
+ <td class="paramname"></td><td>)</td>
262
+ <td> const</td>
601
263
  </tr>
602
264
  </table>
603
265
  </td>
604
266
  <td class="mlabels-right">
605
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
267
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
606
268
  </tr>
607
269
  </table>
608
270
  </div><div class="memdoc">
609
271
 
610
- <p>Propagation for the solving, to be implemented in the child class. </p>
272
+ <p>Return CFL Grammar. </p>
611
273
 
612
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00141">141</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
613
- <div class="fragment"><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; DPIm newItem(item);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; newItem.setCurNodeID(edge-&gt;getDstID());</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a28cd2677717b19c9cd8ab3c1c441d409">pushIntoWorklist</a>(newItem);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_a28cd2677717b19c9cd8ab3c1c441d409"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a28cd2677717b19c9cd8ab3c1c441d409">SVF::CFLSolver::pushIntoWorklist</a></div><div class="ttdeci">bool pushIntoWorklist(DPIm &amp;item)</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00160">CFLSolver.h:160</a></div></div>
274
+ <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00062">62</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
275
+ <div class="fragment"><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">grammar</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_aad88cf557ec43127de859b765505df49"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">SVF::CFLSolver::grammar</a></div><div class="ttdeci">CFLGrammar * grammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00089">CFLSolver.h:89</a></div></div>
614
276
  </div><!-- fragment -->
615
277
  </div>
616
278
  </div>
617
- <a id="adaa8ca9296ec3e9b6ec544a105296d22"></a>
618
- <h2 class="memtitle"><span class="permalink"><a href="#adaa8ca9296ec3e9b6ec544a105296d22">&#9670;&nbsp;</a></span>getNode()</h2>
279
+ <a id="a2c6bce1f73bcf5937a26e91a7daba33c"></a>
280
+ <h2 class="memtitle"><span class="permalink"><a href="#a2c6bce1f73bcf5937a26e91a7daba33c">&#9670;&nbsp;</a></span>getGraph()</h2>
619
281
 
620
282
  <div class="memitem">
621
283
  <div class="memproto">
622
- <div class="memtemplate">
623
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
624
284
  <table class="mlabels">
625
285
  <tr>
626
286
  <td class="mlabels-left">
627
287
  <table class="memname">
628
288
  <tr>
629
- <td class="memname"><a class="el" href="classSVF_1_1CFLSolver.html#a7a180d7878fc7b4c055fa72298398127">GNODE</a>* <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::getNode </td>
289
+ <td class="memname">const <a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* SVF::CFLSolver::getGraph </td>
630
290
  <td>(</td>
631
- <td class="paramtype"><a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>&#160;</td>
632
- <td class="paramname"><em>id</em></td><td>)</td>
291
+ <td class="paramname"></td><td>)</td>
633
292
  <td> const</td>
634
293
  </tr>
635
294
  </table>
636
295
  </td>
637
296
  <td class="mlabels-right">
638
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
297
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
639
298
  </tr>
640
299
  </table>
641
300
  </div><div class="memdoc">
642
301
 
643
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00084">84</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
644
- <div class="fragment"><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLSolver.html#a26e81753961ccb80b08d5c3ef7c4a141">_graph</a>-&gt;getGNode(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_a26e81753961ccb80b08d5c3ef7c4a141"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a26e81753961ccb80b08d5c3ef7c4a141">SVF::CFLSolver::_graph</a></div><div class="ttdeci">GraphType _graph</div><div class="ttdoc">Graph. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00177">CFLSolver.h:177</a></div></div>
302
+ <p>Return CFL Graph. </p>
303
+
304
+ <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00057">57</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
305
+ <div class="fragment"><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLSolver.html#aedd6c605c4c381c738f4c6682c40d9f2">graph</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_aedd6c605c4c381c738f4c6682c40d9f2"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#aedd6c605c4c381c738f4c6682c40d9f2">SVF::CFLSolver::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00088">CFLSolver.h:88</a></div></div>
645
306
  </div><!-- fragment -->
646
307
  </div>
647
308
  </div>
648
- <a id="a31199503d0ed7aff97d4620b3599dea6"></a>
649
- <h2 class="memtitle"><span class="permalink"><a href="#a31199503d0ed7aff97d4620b3599dea6">&#9670;&nbsp;</a></span>getNodeIDFromItem()</h2>
309
+ <a id="a0e112c2290b3ba4e61da6b1fe9ac506d"></a>
310
+ <h2 class="memtitle"><span class="permalink"><a href="#a0e112c2290b3ba4e61da6b1fe9ac506d">&#9670;&nbsp;</a></span>isInWorklist()</h2>
650
311
 
651
312
  <div class="memitem">
652
313
  <div class="memproto">
653
- <div class="memtemplate">
654
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
655
314
  <table class="mlabels">
656
315
  <tr>
657
316
  <td class="mlabels-left">
658
317
  <table class="memname">
659
318
  <tr>
660
- <td class="memname">virtual <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::getNodeIDFromItem </td>
319
+ <td class="memname">bool SVF::CFLSolver::isInWorklist </td>
661
320
  <td>(</td>
662
- <td class="paramtype">const DPIm &amp;&#160;</td>
321
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CFLEdge.html">CFLEdge</a> *&#160;</td>
663
322
  <td class="paramname"><em>item</em></td><td>)</td>
664
- <td> const</td>
665
- </tr>
666
- </table>
667
- </td>
668
- <td class="mlabels-right">
669
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
670
- </tr>
671
- </table>
672
- </div><div class="memdoc">
673
-
674
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00088">88</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
675
- <div class="fragment"><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> item.getCurNodeID();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div></div><!-- fragment -->
676
- </div>
677
- </div>
678
- <a id="a9fc4cbe8985d4c25845d408ffcac13e4"></a>
679
- <h2 class="memtitle"><span class="permalink"><a href="#a9fc4cbe8985d4c25845d408ffcac13e4">&#9670;&nbsp;</a></span>graph()</h2>
680
-
681
- <div class="memitem">
682
- <div class="memproto">
683
- <div class="memtemplate">
684
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
685
- <table class="mlabels">
686
- <tr>
687
- <td class="mlabels-left">
688
- <table class="memname">
689
- <tr>
690
- <td class="memname">const GraphType <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::graph </td>
691
- <td>(</td>
692
- <td class="paramname"></td><td>)</td>
693
- <td> const</td>
323
+ <td></td>
694
324
  </tr>
695
325
  </table>
696
326
  </td>
@@ -700,29 +330,25 @@ template&lt;class GraphType , class DPIm = DPItem&gt; </div>
700
330
  </table>
701
331
  </div><div class="memdoc">
702
332
 
703
- <p>Get/Set graph methods. </p>
704
-
705
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00074">74</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
706
- <div class="fragment"><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLSolver.html#a26e81753961ccb80b08d5c3ef7c4a141">_graph</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_a26e81753961ccb80b08d5c3ef7c4a141"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a26e81753961ccb80b08d5c3ef7c4a141">SVF::CFLSolver::_graph</a></div><div class="ttdeci">GraphType _graph</div><div class="ttdoc">Graph. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00177">CFLSolver.h:177</a></div></div>
333
+ <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00081">81</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
334
+ <div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a86f2393b1cce7969d6974b53970ead54">find</a>(item);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_a211bb78846886aa9ccd4b160da81e02e"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">SVF::CFLSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00091">CFLSolver.h:91</a></div></div>
335
+ <div class="ttc" id="classSVF_1_1FIFOWorkList_html_a86f2393b1cce7969d6974b53970ead54"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a86f2393b1cce7969d6974b53970ead54">SVF::FIFOWorkList::find</a></div><div class="ttdeci">bool find(Data data) const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00151">WorkList.h:151</a></div></div>
707
336
  </div><!-- fragment -->
708
337
  </div>
709
338
  </div>
710
- <a id="a435454f52e5be39c960052f1947b984d"></a>
711
- <h2 class="memtitle"><span class="permalink"><a href="#a435454f52e5be39c960052f1947b984d">&#9670;&nbsp;</a></span>isInWorklist()</h2>
339
+ <a id="ac1fe4563081c29f8a715bd67d454c8bb"></a>
340
+ <h2 class="memtitle"><span class="permalink"><a href="#ac1fe4563081c29f8a715bd67d454c8bb">&#9670;&nbsp;</a></span>isWorklistEmpty()</h2>
712
341
 
713
342
  <div class="memitem">
714
343
  <div class="memproto">
715
- <div class="memtemplate">
716
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
717
344
  <table class="mlabels">
718
345
  <tr>
719
346
  <td class="mlabels-left">
720
347
  <table class="memname">
721
348
  <tr>
722
- <td class="memname">bool <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::isInWorklist </td>
349
+ <td class="memname">bool SVF::CFLSolver::isWorklistEmpty </td>
723
350
  <td>(</td>
724
- <td class="paramtype">DPIm &amp;&#160;</td>
725
- <td class="paramname"><em>item</em></td><td>)</td>
351
+ <td class="paramname"></td><td>)</td>
726
352
  <td></td>
727
353
  </tr>
728
354
  </table>
@@ -733,25 +359,23 @@ template&lt;class GraphType , class DPIm = DPItem&gt; </div>
733
359
  </table>
734
360
  </div><div class="memdoc">
735
361
 
736
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00168">168</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
737
- <div class="fragment"><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLSolver.html#a9d3cbcb9db049e3069b6553ab17ccf5b">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a86f2393b1cce7969d6974b53970ead54">find</a>(item);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_a9d3cbcb9db049e3069b6553ab17ccf5b"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a9d3cbcb9db049e3069b6553ab17ccf5b">SVF::CFLSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00180">CFLSolver.h:180</a></div></div>
738
- <div class="ttc" id="classSVF_1_1FIFOWorkList_html_a86f2393b1cce7969d6974b53970ead54"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a86f2393b1cce7969d6974b53970ead54">SVF::FIFOWorkList::find</a></div><div class="ttdeci">bool find(Data data) const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00151">WorkList.h:151</a></div></div>
362
+ <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00077">77</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
363
+ <div class="fragment"><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_a211bb78846886aa9ccd4b160da81e02e"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">SVF::CFLSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00091">CFLSolver.h:91</a></div></div>
364
+ <div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
739
365
  </div><!-- fragment -->
740
366
  </div>
741
367
  </div>
742
- <a id="a4f35edfc7c4e4a35c9948ab5abd1a6ad"></a>
743
- <h2 class="memtitle"><span class="permalink"><a href="#a4f35edfc7c4e4a35c9948ab5abd1a6ad">&#9670;&nbsp;</a></span>isWorklistEmpty()</h2>
368
+ <a id="a95573e91816f426ff7b45afb7b7c821e"></a>
369
+ <h2 class="memtitle"><span class="permalink"><a href="#a95573e91816f426ff7b45afb7b7c821e">&#9670;&nbsp;</a></span>popFromWorklist()</h2>
744
370
 
745
371
  <div class="memitem">
746
372
  <div class="memproto">
747
- <div class="memtemplate">
748
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
749
373
  <table class="mlabels">
750
374
  <tr>
751
375
  <td class="mlabels-left">
752
376
  <table class="memname">
753
377
  <tr>
754
- <td class="memname">bool <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::isWorklistEmpty </td>
378
+ <td class="memname">const <a class="el" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* SVF::CFLSolver::popFromWorklist </td>
755
379
  <td>(</td>
756
380
  <td class="paramname"></td><td>)</td>
757
381
  <td></td>
@@ -764,27 +388,28 @@ template&lt;class GraphType , class DPIm = DPItem&gt; </div>
764
388
  </table>
765
389
  </div><div class="memdoc">
766
390
 
767
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00164">164</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
768
- <div class="fragment"><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLSolver.html#a9d3cbcb9db049e3069b6553ab17ccf5b">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>();</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
769
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a9d3cbcb9db049e3069b6553ab17ccf5b"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a9d3cbcb9db049e3069b6553ab17ccf5b">SVF::CFLSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00180">CFLSolver.h:180</a></div></div>
391
+ <p>Worklist operations. </p>
392
+
393
+ <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00069">69</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
394
+ <div class="fragment"><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_a211bb78846886aa9ccd4b160da81e02e"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">SVF::CFLSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00091">CFLSolver.h:91</a></div></div>
395
+ <div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00174">WorkList.h:174</a></div></div>
770
396
  </div><!-- fragment -->
771
397
  </div>
772
398
  </div>
773
- <a id="a88f770b4762d44e50d72cd50bb504078"></a>
774
- <h2 class="memtitle"><span class="permalink"><a href="#a88f770b4762d44e50d72cd50bb504078">&#9670;&nbsp;</a></span>popFromWorklist()</h2>
399
+ <a id="afc745dc72fd0572a145a78fe6a93ae5c"></a>
400
+ <h2 class="memtitle"><span class="permalink"><a href="#afc745dc72fd0572a145a78fe6a93ae5c">&#9670;&nbsp;</a></span>pushIntoWorklist()</h2>
775
401
 
776
402
  <div class="memitem">
777
403
  <div class="memproto">
778
- <div class="memtemplate">
779
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
780
404
  <table class="mlabels">
781
405
  <tr>
782
406
  <td class="mlabels-left">
783
407
  <table class="memname">
784
408
  <tr>
785
- <td class="memname">DPIm <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::popFromWorklist </td>
409
+ <td class="memname">bool SVF::CFLSolver::pushIntoWorklist </td>
786
410
  <td>(</td>
787
- <td class="paramname"></td><td>)</td>
411
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CFLEdge.html">CFLEdge</a> *&#160;</td>
412
+ <td class="paramname"><em>item</em></td><td>)</td>
788
413
  <td></td>
789
414
  </tr>
790
415
  </table>
@@ -795,91 +420,102 @@ template&lt;class GraphType , class DPIm = DPItem&gt; </div>
795
420
  </table>
796
421
  </div><div class="memdoc">
797
422
 
798
- <p>Worklist operations. </p>
799
-
800
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00156">156</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
801
- <div class="fragment"><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLSolver.html#a9d3cbcb9db049e3069b6553ab17ccf5b">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_a9d3cbcb9db049e3069b6553ab17ccf5b"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a9d3cbcb9db049e3069b6553ab17ccf5b">SVF::CFLSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00180">CFLSolver.h:180</a></div></div>
802
- <div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00174">WorkList.h:174</a></div></div>
423
+ <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00073">73</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
424
+ <div class="fragment"><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(item);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_a211bb78846886aa9ccd4b160da81e02e"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">SVF::CFLSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00091">CFLSolver.h:91</a></div></div>
425
+ <div class="ttc" id="classSVF_1_1FIFOWorkList_html_ad4c6a48b60c870d63049fe7272cc7eb8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(Data data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00159">WorkList.h:159</a></div></div>
803
426
  </div><!-- fragment -->
804
427
  </div>
805
428
  </div>
806
- <a id="a28cd2677717b19c9cd8ab3c1c441d409"></a>
807
- <h2 class="memtitle"><span class="permalink"><a href="#a28cd2677717b19c9cd8ab3c1c441d409">&#9670;&nbsp;</a></span>pushIntoWorklist()</h2>
429
+ <a id="a2ee3436c26ebdb2aaf790c25b1d8b5a6"></a>
430
+ <h2 class="memtitle"><span class="permalink"><a href="#a2ee3436c26ebdb2aaf790c25b1d8b5a6">&#9670;&nbsp;</a></span>solve()</h2>
808
431
 
809
432
  <div class="memitem">
810
433
  <div class="memproto">
811
- <div class="memtemplate">
812
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
813
- <table class="mlabels">
814
- <tr>
815
- <td class="mlabels-left">
816
434
  <table class="memname">
817
435
  <tr>
818
- <td class="memname">bool <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::pushIntoWorklist </td>
436
+ <td class="memname">void CFLSolver::solve </td>
819
437
  <td>(</td>
820
- <td class="paramtype">DPIm &amp;&#160;</td>
821
- <td class="paramname"><em>item</em></td><td>)</td>
438
+ <td class="paramname"></td><td>)</td>
822
439
  <td></td>
823
440
  </tr>
824
441
  </table>
825
- </td>
826
- <td class="mlabels-right">
827
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
828
- </tr>
829
- </table>
830
442
  </div><div class="memdoc">
831
443
 
832
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00160">160</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
833
- <div class="fragment"><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLSolver.html#a9d3cbcb9db049e3069b6553ab17ccf5b">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(item);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div><div class="ttc" id="classSVF_1_1FIFOWorkList_html_ad4c6a48b60c870d63049fe7272cc7eb8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(Data data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00159">WorkList.h:159</a></div></div>
834
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a9d3cbcb9db049e3069b6553ab17ccf5b"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a9d3cbcb9db049e3069b6553ab17ccf5b">SVF::CFLSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00180">CFLSolver.h:180</a></div></div>
444
+ <p>Start solving. </p>
445
+ <p>initial worklist</p>
446
+ <p>Foreach production X -&gt; epsilon add X(i,i) if not exist to E and to worklist</p>
447
+ <p>Select and remove an edge Y(i,j) from worklist</p>
448
+ <p>For each production X -&gt; Y add X(i,j) if not exist to E and to worklist</p>
449
+ <p>For each production X -&gt; Y Z Foreach outgoing edge Z(j,k) from node j do add X(i,k) if not exist to E and to worklist</p>
450
+ <p>For each production X -&gt; Z Y Foreach incoming edge Z(k,i) to node i do add X(k,j) if not exist to E and to worklist </p>
451
+
452
+ <p class="definition">Definition at line <a class="el" href="CFLSolver_8cpp_source.html#l00034">34</a> of file <a class="el" href="CFLSolver_8cpp_source.html">CFLSolver.cpp</a>.</p>
453
+ <div class="fragment"><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1CFLSolver.html#aedd6c605c4c381c738f4c6682c40d9f2">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); it!= <a class="code" href="classSVF_1_1CFLSolver.html#aedd6c605c4c381c738f4c6682c40d9f2">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it++){</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* edge : (*it).second-&gt;getOutEdges()){</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">pushIntoWorklist</a>(edge);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFLSolver.html#a0ade6e3827c629c3cc3d22a101df7288">Production</a>&amp; prod : <a class="code" href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">grammar</a>-&gt;<a class="code" href="classSVF_1_1CFLGrammar.html#aa27c7e9e4ffcbbf95edddfe3f9faf719">getEpsilonProds</a>()){</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1CFLSolver.html#aedd6c605c4c381c738f4c6682c40d9f2">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); it!= <a class="code" href="classSVF_1_1CFLSolver.html#aedd6c605c4c381c738f4c6682c40d9f2">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it++){</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a06e64c18559b4f311717203ac3fe1fcd">Symbol</a> X = <a class="code" href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">grammar</a>-&gt;<a class="code" href="classSVF_1_1CFLGrammar.html#a6b7598e35c7f50257c7f074a5e07b230">getLHSSymbol</a>(prod);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>* i = (*it).second;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* edge = <a class="code" href="classSVF_1_1CFLSolver.html#aedd6c605c4c381c738f4c6682c40d9f2">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(i, i, X))</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">pushIntoWorklist</a>(edge);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">while</span>(!<a class="code" href="classSVF_1_1CFLSolver.html#ac1fe4563081c29f8a715bd67d454c8bb">isWorklistEmpty</a>()){</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* Y_edge = <a class="code" href="classSVF_1_1CFLSolver.html#a95573e91816f426ff7b45afb7b7c821e">popFromWorklist</a>();</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>* i = Y_edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>* j = Y_edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a06e64c18559b4f311717203ac3fe1fcd">Symbol</a> Y = Y_edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">grammar</a>-&gt;<a class="code" href="classSVF_1_1CFLGrammar.html#a087cd7538e2565fc00f95221d44c2463">hasProdsFromSingleRHS</a>(Y))</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFLSolver.html#a0ade6e3827c629c3cc3d22a101df7288">Production</a>&amp; prod : <a class="code" href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">grammar</a>-&gt;<a class="code" href="classSVF_1_1CFLGrammar.html#a7284e7262bedad317a6f8b35b6f62e45">getProdsFromSingleRHS</a>(Y)){</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a06e64c18559b4f311717203ac3fe1fcd">Symbol</a> X = <a class="code" href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">grammar</a>-&gt;<a class="code" href="classSVF_1_1CFLGrammar.html#a6b7598e35c7f50257c7f074a5e07b230">getLHSSymbol</a>(prod);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* newEdge = <a class="code" href="classSVF_1_1CFLSolver.html#aedd6c605c4c381c738f4c6682c40d9f2">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(i, j, X))</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">pushIntoWorklist</a>(newEdge);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">grammar</a>-&gt;<a class="code" href="classSVF_1_1CFLGrammar.html#ae7fc8b9b6e3b5be1d5d1e98b19dc95e7">hasProdsFromFirstRHS</a>(Y))</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFLSolver.html#a0ade6e3827c629c3cc3d22a101df7288">Production</a>&amp; prod : <a class="code" href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">grammar</a>-&gt;<a class="code" href="classSVF_1_1CFLGrammar.html#ad623cfee9bade475fcdc64fab349f332">getProdsFromFirstRHS</a>(Y)){</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a06e64c18559b4f311717203ac3fe1fcd">Symbol</a> X = <a class="code" href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">grammar</a>-&gt;<a class="code" href="classSVF_1_1CFLGrammar.html#a6b7598e35c7f50257c7f074a5e07b230">getLHSSymbol</a>(prod);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* Z_edge : j-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">getOutEdges</a>()){</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span> (Z_edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">grammar</a>-&gt;<a class="code" href="classSVF_1_1CFLGrammar.html#afc6e719553df005ea14cca953602d28b">getSecondRHSSymbol</a>(prod))</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>* k = Z_edge-&gt;getDstNode();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* newEdge = <a class="code" href="classSVF_1_1CFLSolver.html#aedd6c605c4c381c738f4c6682c40d9f2">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(i, k, X))</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">pushIntoWorklist</a>(newEdge);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">grammar</a>-&gt;<a class="code" href="classSVF_1_1CFLGrammar.html#af9b7e2baa487898ad9a890606216d0c1">hasProdsFromSecondRHS</a>(Y))</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFLSolver.html#a0ade6e3827c629c3cc3d22a101df7288">Production</a>&amp; prod : <a class="code" href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">grammar</a>-&gt;<a class="code" href="classSVF_1_1CFLGrammar.html#a060244b3b41208d9eb80ddee658cdc68">getProdsFromSecondRHS</a>(Y)){</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a06e64c18559b4f311717203ac3fe1fcd">Symbol</a> X = <a class="code" href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">grammar</a>-&gt;<a class="code" href="classSVF_1_1CFLGrammar.html#a6b7598e35c7f50257c7f074a5e07b230">getLHSSymbol</a>(prod);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* Z_edge : i-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>()){</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span>(Z_edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">grammar</a>-&gt;<a class="code" href="classSVF_1_1CFLGrammar.html#af26cd720d34bdf7e37c0be603fcc9921">getFirstRHSSymbol</a>(prod))</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>* k = Z_edge-&gt;getSrcNode();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* newEdge = <a class="code" href="classSVF_1_1CFLSolver.html#aedd6c605c4c381c738f4c6682c40d9f2">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(k, j, X))</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">pushIntoWorklist</a>(newEdge);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00361">GenericGraph.h:361</a></div></div>
454
+ <div class="ttc" id="classSVF_1_1GenericEdge_html_abe8525c542def8162b094c169a01993b"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">SVF::GenericEdge::getEdgeKind</a></div><div class="ttdeci">GEdgeKind getEdgeKind() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00081">GenericGraph.h:81</a></div></div>
455
+ <div class="ttc" id="classSVF_1_1CFLSolver_html_a06e64c18559b4f311717203ac3fe1fcd"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a06e64c18559b4f311717203ac3fe1fcd">SVF::CFLSolver::Symbol</a></div><div class="ttdeci">CFLGrammar::Symbol Symbol</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00043">CFLSolver.h:43</a></div></div>
456
+ <div class="ttc" id="classSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy &amp; getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00182">GenericGraph.h:182</a></div></div>
457
+ <div class="ttc" id="classSVF_1_1CFLSolver_html_afc745dc72fd0572a145a78fe6a93ae5c"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">SVF::CFLSolver::pushIntoWorklist</a></div><div class="ttdeci">bool pushIntoWorklist(const CFLEdge *item)</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00073">CFLSolver.h:73</a></div></div>
458
+ <div class="ttc" id="classSVF_1_1CFLGrammar_html_a6b7598e35c7f50257c7f074a5e07b230"><div class="ttname"><a href="classSVF_1_1CFLGrammar.html#a6b7598e35c7f50257c7f074a5e07b230">SVF::CFLGrammar::getLHSSymbol</a></div><div class="ttdeci">Symbol getLHSSymbol(const Production &amp;prod)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00106">CFLGrammar.h:106</a></div></div>
459
+ <div class="ttc" id="classSVF_1_1CFLGraph_html_a9eea8083dbeaf898948595b1d75cfee2"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">SVF::CFLGraph::addCFLEdge</a></div><div class="ttdeci">virtual const CFLEdge * addCFLEdge(CFLNode *src, CFLNode *dst, CFLEdge::GEdgeFlag label)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8cpp_source.html#l00046">CFLGraph.cpp:46</a></div></div>
460
+ <div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
461
+ <div class="ttc" id="classSVF_1_1CFLNode_html"><div class="ttname"><a href="classSVF_1_1CFLNode.html">SVF::CFLNode</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00058">CFLGraph.h:58</a></div></div>
462
+ <div class="ttc" id="classSVF_1_1CFLSolver_html_aedd6c605c4c381c738f4c6682c40d9f2"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#aedd6c605c4c381c738f4c6682c40d9f2">SVF::CFLSolver::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00088">CFLSolver.h:88</a></div></div>
463
+ <div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
464
+ <div class="ttc" id="classSVF_1_1CFLGrammar_html_ae7fc8b9b6e3b5be1d5d1e98b19dc95e7"><div class="ttname"><a href="classSVF_1_1CFLGrammar.html#ae7fc8b9b6e3b5be1d5d1e98b19dc95e7">SVF::CFLGrammar::hasProdsFromFirstRHS</a></div><div class="ttdeci">const bool hasProdsFromFirstRHS(Symbol sym) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00073">CFLGrammar.h:73</a></div></div>
465
+ <div class="ttc" id="classSVF_1_1CFLGrammar_html_a7284e7262bedad317a6f8b35b6f62e45"><div class="ttname"><a href="classSVF_1_1CFLGrammar.html#a7284e7262bedad317a6f8b35b6f62e45">SVF::CFLGrammar::getProdsFromSingleRHS</a></div><div class="ttdeci">const Productions &amp; getProdsFromSingleRHS(Symbol sym) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00088">CFLGrammar.h:88</a></div></div>
466
+ <div class="ttc" id="classSVF_1_1CFLGrammar_html_a087cd7538e2565fc00f95221d44c2463"><div class="ttname"><a href="classSVF_1_1CFLGrammar.html#a087cd7538e2565fc00f95221d44c2463">SVF::CFLGrammar::hasProdsFromSingleRHS</a></div><div class="ttdeci">const bool hasProdsFromSingleRHS(Symbol sym) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00078">CFLGrammar.h:78</a></div></div>
467
+ <div class="ttc" id="classSVF_1_1GenericNode_html_a2d9cd758d6f8c5189d9b90b74f43e009"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">SVF::GenericNode::getOutEdges</a></div><div class="ttdeci">const GEdgeSetTy &amp; getOutEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00178">GenericGraph.h:178</a></div></div>
468
+ <div class="ttc" id="classSVF_1_1CFLSolver_html_aad88cf557ec43127de859b765505df49"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49">SVF::CFLSolver::grammar</a></div><div class="ttdeci">CFLGrammar * grammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00089">CFLSolver.h:89</a></div></div>
469
+ <div class="ttc" id="classSVF_1_1CFLGrammar_html_aa27c7e9e4ffcbbf95edddfe3f9faf719"><div class="ttname"><a href="classSVF_1_1CFLGrammar.html#aa27c7e9e4ffcbbf95edddfe3f9faf719">SVF::CFLGrammar::getEpsilonProds</a></div><div class="ttdeci">const Productions &amp; getEpsilonProds() const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00069">CFLGrammar.h:69</a></div></div>
470
+ <div class="ttc" id="classSVF_1_1CFLSolver_html_a95573e91816f426ff7b45afb7b7c821e"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a95573e91816f426ff7b45afb7b7c821e">SVF::CFLSolver::popFromWorklist</a></div><div class="ttdeci">const CFLEdge * popFromWorklist()</div><div class="ttdoc">Worklist operations. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00069">CFLSolver.h:69</a></div></div>
471
+ <div class="ttc" id="classSVF_1_1GenericEdge_html_ab47ca533c415841ef75456cbad439589"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::GenericEdge::getSrcNode</a></div><div class="ttdeci">NodeType * getSrcNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00085">GenericGraph.h:85</a></div></div>
472
+ <div class="ttc" id="classSVF_1_1CFLSolver_html_ac1fe4563081c29f8a715bd67d454c8bb"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#ac1fe4563081c29f8a715bd67d454c8bb">SVF::CFLSolver::isWorklistEmpty</a></div><div class="ttdeci">bool isWorklistEmpty()</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00077">CFLSolver.h:77</a></div></div>
473
+ <div class="ttc" id="classSVF_1_1CFLGrammar_html_af26cd720d34bdf7e37c0be603fcc9921"><div class="ttname"><a href="classSVF_1_1CFLGrammar.html#af26cd720d34bdf7e37c0be603fcc9921">SVF::CFLGrammar::getFirstRHSSymbol</a></div><div class="ttdeci">Symbol getFirstRHSSymbol(const Production &amp;prod)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00110">CFLGrammar.h:110</a></div></div>
474
+ <div class="ttc" id="classSVF_1_1CFLEdge_html"><div class="ttname"><a href="classSVF_1_1CFLEdge.html">SVF::CFLEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00046">CFLGraph.h:46</a></div></div>
475
+ <div class="ttc" id="classSVF_1_1CFLSolver_html_a0ade6e3827c629c3cc3d22a101df7288"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a0ade6e3827c629c3cc3d22a101df7288">SVF::CFLSolver::Production</a></div><div class="ttdeci">CFLGrammar::Production Production</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00042">CFLSolver.h:42</a></div></div>
476
+ <div class="ttc" id="classSVF_1_1CFLGrammar_html_a060244b3b41208d9eb80ddee658cdc68"><div class="ttname"><a href="classSVF_1_1CFLGrammar.html#a060244b3b41208d9eb80ddee658cdc68">SVF::CFLGrammar::getProdsFromSecondRHS</a></div><div class="ttdeci">const Productions &amp; getProdsFromSecondRHS(Symbol sym) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00100">CFLGrammar.h:100</a></div></div>
477
+ <div class="ttc" id="classSVF_1_1CFLGrammar_html_afc6e719553df005ea14cca953602d28b"><div class="ttname"><a href="classSVF_1_1CFLGrammar.html#afc6e719553df005ea14cca953602d28b">SVF::CFLGrammar::getSecondRHSSymbol</a></div><div class="ttdeci">Symbol getSecondRHSSymbol(const Production &amp;prod)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00114">CFLGrammar.h:114</a></div></div>
478
+ <div class="ttc" id="classSVF_1_1CFLGrammar_html_ad623cfee9bade475fcdc64fab349f332"><div class="ttname"><a href="classSVF_1_1CFLGrammar.html#ad623cfee9bade475fcdc64fab349f332">SVF::CFLGrammar::getProdsFromFirstRHS</a></div><div class="ttdeci">const Productions &amp; getProdsFromFirstRHS(Symbol sym) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00094">CFLGrammar.h:94</a></div></div>
479
+ <div class="ttc" id="classSVF_1_1CFLGrammar_html_af9b7e2baa487898ad9a890606216d0c1"><div class="ttname"><a href="classSVF_1_1CFLGrammar.html#af9b7e2baa487898ad9a890606216d0c1">SVF::CFLGrammar::hasProdsFromSecondRHS</a></div><div class="ttdeci">const bool hasProdsFromSecondRHS(Symbol sym) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00083">CFLGrammar.h:83</a></div></div>
835
480
  </div><!-- fragment -->
836
481
  </div>
837
482
  </div>
838
- <a id="ae0a02179b2489f65988819666ec52a7c"></a>
839
- <h2 class="memtitle"><span class="permalink"><a href="#ae0a02179b2489f65988819666ec52a7c">&#9670;&nbsp;</a></span>setGraph()</h2>
483
+ <h2 class="groupheader">Member Data Documentation</h2>
484
+ <a id="aad88cf557ec43127de859b765505df49"></a>
485
+ <h2 class="memtitle"><span class="permalink"><a href="#aad88cf557ec43127de859b765505df49">&#9670;&nbsp;</a></span>grammar</h2>
840
486
 
841
487
  <div class="memitem">
842
488
  <div class="memproto">
843
- <div class="memtemplate">
844
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
845
489
  <table class="mlabels">
846
490
  <tr>
847
491
  <td class="mlabels-left">
848
492
  <table class="memname">
849
493
  <tr>
850
- <td class="memname">void <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::setGraph </td>
851
- <td>(</td>
852
- <td class="paramtype">GraphType&#160;</td>
853
- <td class="paramname"><em>g</em></td><td>)</td>
854
- <td></td>
494
+ <td class="memname"><a class="el" href="classSVF_1_1CFLGrammar.html">CFLGrammar</a>* SVF::CFLSolver::grammar</td>
855
495
  </tr>
856
496
  </table>
857
497
  </td>
858
498
  <td class="mlabels-right">
859
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
499
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
860
500
  </tr>
861
501
  </table>
862
502
  </div><div class="memdoc">
863
503
 
864
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00078">78</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
865
- <div class="fragment"><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classSVF_1_1CFLSolver.html#a26e81753961ccb80b08d5c3ef7c4a141">_graph</a> = g;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLSolver_html_a26e81753961ccb80b08d5c3ef7c4a141"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a26e81753961ccb80b08d5c3ef7c4a141">SVF::CFLSolver::_graph</a></div><div class="ttdeci">GraphType _graph</div><div class="ttdoc">Graph. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00177">CFLSolver.h:177</a></div></div>
866
- </div><!-- fragment -->
504
+ <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00089">89</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
505
+
867
506
  </div>
868
507
  </div>
869
- <h2 class="groupheader">Member Data Documentation</h2>
870
- <a id="a26e81753961ccb80b08d5c3ef7c4a141"></a>
871
- <h2 class="memtitle"><span class="permalink"><a href="#a26e81753961ccb80b08d5c3ef7c4a141">&#9670;&nbsp;</a></span>_graph</h2>
508
+ <a id="aedd6c605c4c381c738f4c6682c40d9f2"></a>
509
+ <h2 class="memtitle"><span class="permalink"><a href="#aedd6c605c4c381c738f4c6682c40d9f2">&#9670;&nbsp;</a></span>graph</h2>
872
510
 
873
511
  <div class="memitem">
874
512
  <div class="memproto">
875
- <div class="memtemplate">
876
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
877
513
  <table class="mlabels">
878
514
  <tr>
879
515
  <td class="mlabels-left">
880
516
  <table class="memname">
881
517
  <tr>
882
- <td class="memname">GraphType <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::_graph</td>
518
+ <td class="memname"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* SVF::CFLSolver::graph</td>
883
519
  </tr>
884
520
  </table>
885
521
  </td>
@@ -889,25 +525,21 @@ template&lt;class GraphType , class DPIm = DPItem&gt; </div>
889
525
  </table>
890
526
  </div><div class="memdoc">
891
527
 
892
- <p>Graph. </p>
893
-
894
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00177">177</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
528
+ <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00088">88</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
895
529
 
896
530
  </div>
897
531
  </div>
898
- <a id="a9d3cbcb9db049e3069b6553ab17ccf5b"></a>
899
- <h2 class="memtitle"><span class="permalink"><a href="#a9d3cbcb9db049e3069b6553ab17ccf5b">&#9670;&nbsp;</a></span>worklist</h2>
532
+ <a id="a211bb78846886aa9ccd4b160da81e02e"></a>
533
+ <h2 class="memtitle"><span class="permalink"><a href="#a211bb78846886aa9ccd4b160da81e02e">&#9670;&nbsp;</a></span>worklist</h2>
900
534
 
901
535
  <div class="memitem">
902
536
  <div class="memproto">
903
- <div class="memtemplate">
904
- template&lt;class GraphType , class DPIm = DPItem&gt; </div>
905
537
  <table class="mlabels">
906
538
  <tr>
907
539
  <td class="mlabels-left">
908
540
  <table class="memname">
909
541
  <tr>
910
- <td class="memname"><a class="el" href="classSVF_1_1CFLSolver.html#a802e04eafce9adfd60506c44951c3d53">WorkList</a> <a class="el" href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a>&lt; GraphType, DPIm &gt;::worklist</td>
542
+ <td class="memname"><a class="el" href="classSVF_1_1CFLSolver.html#a194d2c4c801799b0ba9562e33ca5b695">WorkList</a> SVF::CFLSolver::worklist</td>
911
543
  </tr>
912
544
  </table>
913
545
  </td>
@@ -919,12 +551,13 @@ template&lt;class GraphType , class DPIm = DPItem&gt; </div>
919
551
 
920
552
  <p>Worklist for resolution. </p>
921
553
 
922
- <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00180">180</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
554
+ <p class="definition">Definition at line <a class="el" href="CFLSolver_8h_source.html#l00091">91</a> of file <a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a>.</p>
923
555
 
924
556
  </div>
925
557
  </div>
926
- <hr/>The documentation for this class was generated from the following file:<ul>
927
- <li>/home/runner/work/SVF/SVF/include/Util/<a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a></li>
558
+ <hr/>The documentation for this class was generated from the following files:<ul>
559
+ <li>/home/runner/work/SVF/SVF/include/CFL/<a class="el" href="CFLSolver_8h_source.html">CFLSolver.h</a></li>
560
+ <li>/home/runner/work/SVF/SVF/lib/CFL/<a class="el" href="CFLSolver_8cpp_source.html">CFLSolver.cpp</a></li>
928
561
  </ul>
929
562
  </div><!-- contents -->
930
563
  <!-- start footer part -->