svf-tools 1.0.579 → 1.0.581

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 (313) hide show
  1. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +2 -1
  2. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +3 -2
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +9 -6
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +6 -3
  5. package/SVF-doxygen/html/html/Annotator_8h_source.html +1 -1
  6. package/SVF-doxygen/html/html/BasicTypes_8cpp.html +81 -0
  7. package/SVF-doxygen/html/html/BasicTypes_8cpp_source.html +91 -0
  8. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +10 -10
  9. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +1 -1
  10. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +5 -5
  11. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +5 -5
  12. package/SVF-doxygen/html/html/CFLBase_8h_source.html +1 -1
  13. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +12 -11
  14. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +49 -48
  15. package/SVF-doxygen/html/html/CFLGrammar_8txt.html +76 -76
  16. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +10 -10
  18. package/SVF-doxygen/html/html/CFLSolver_8h_source.html +1 -1
  19. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +11 -10
  20. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -4
  21. package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
  22. package/SVF-doxygen/html/html/CHG_8cpp_source.html +8 -8
  23. package/SVF-doxygen/html/html/CHG_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +18 -16
  25. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +1 -1
  26. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +6 -3
  28. package/SVF-doxygen/html/html/ConsG_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
  30. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +4 -2
  31. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +2 -2
  32. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +5 -5
  33. package/SVF-doxygen/html/html/DCHG_8h_source.html +3 -3
  34. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +5 -2
  36. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +4 -2
  39. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +5 -5
  40. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
  41. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  42. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  43. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +4 -2
  44. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +2 -1
  45. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +6 -3
  46. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +5 -2
  47. package/SVF-doxygen/html/html/GrammarBuilder_8cpp_source.html +1 -2
  48. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -5
  49. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +3 -3
  50. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  51. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +1 -1
  52. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +3 -3
  53. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  54. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  55. package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
  56. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +6 -6
  57. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +1 -1
  58. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +9 -9
  59. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +7 -7
  60. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  61. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
  62. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +2 -2
  63. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
  64. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
  65. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +7 -6
  66. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
  67. package/SVF-doxygen/html/html/MHP_8cpp.html +1 -1
  68. package/SVF-doxygen/html/html/MHP_8cpp_source.html +4 -4
  69. package/SVF-doxygen/html/html/MHP_8h_source.html +1 -1
  70. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
  71. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
  72. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +2 -2
  73. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +7 -7
  74. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +3 -3
  75. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
  76. package/SVF-doxygen/html/html/MTA_8cpp_source.html +5 -3
  77. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  78. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  79. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +6 -5
  80. package/SVF-doxygen/html/html/MemRegion_8h_source.html +4 -2
  81. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +10 -8
  82. package/SVF-doxygen/html/html/MemSSA_8h_source.html +4 -2
  83. package/SVF-doxygen/html/html/PCG_8cpp_source.html +3 -3
  84. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/PEGGrammar_8txt.html +25 -25
  86. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
  87. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  88. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +9 -9
  89. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
  90. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +3 -0
  91. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +3 -2
  92. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
  93. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  94. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  95. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -1
  96. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -3
  97. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  98. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +18 -17
  99. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +6 -6
  100. package/SVF-doxygen/html/html/SVFIR_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/SVFModule_8h_source.html +4 -4
  102. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +2 -1
  103. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +5 -5
  104. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +4 -4
  105. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +2 -2
  106. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +1 -1
  107. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  108. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +5 -5
  109. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +4 -4
  110. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -2
  111. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +2 -3
  112. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  113. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +2 -1
  114. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +11 -11
  115. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
  116. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +3 -3
  117. package/SVF-doxygen/html/html/TCT_8cpp_source.html +6 -6
  118. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  119. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +2 -2
  120. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +4 -4
  121. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  122. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +1 -1
  123. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  124. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +0 -2
  125. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +83 -84
  126. package/SVF-doxygen/html/html/VFGNode_8h_source.html +3 -3
  127. package/SVF-doxygen/html/html/VFG_8cpp_source.html +6 -4
  128. package/SVF-doxygen/html/html/VFG_8h_source.html +6 -3
  129. package/SVF-doxygen/html/html/VFG_8txt.html +5 -5
  130. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -2
  131. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +3 -1
  132. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  133. package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
  134. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  135. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +3 -3
  136. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +8 -8
  137. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +4 -4
  138. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +3 -3
  139. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +5 -5
  140. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  141. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +1 -1
  142. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  143. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +11 -11
  145. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +11 -11
  146. package/SVF-doxygen/html/html/classSVF_1_1CFLFIFOWorkList.html +24 -24
  147. package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar-members.html +24 -23
  148. package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar.html +49 -47
  149. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +10 -10
  150. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +1 -1
  151. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +17 -16
  152. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +6 -6
  153. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +1 -1
  154. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +36 -36
  156. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  157. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +17 -8
  158. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +9 -8
  159. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  160. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
  161. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +5 -5
  162. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +2 -2
  163. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +10 -6
  164. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +3 -3
  165. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  166. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +1 -1
  167. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +5 -5
  168. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +3 -3
  169. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +5 -4
  170. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +12 -8
  171. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +4 -2
  172. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +7 -7
  173. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +2 -2
  175. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  176. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase-members.html +25 -24
  177. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +75 -44
  178. package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder.html +1 -2
  179. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  180. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +6 -6
  181. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +3 -3
  182. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +3 -3
  183. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +7 -7
  184. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +3 -3
  185. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  186. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +3 -3
  187. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +17 -17
  188. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +7 -6
  189. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +13 -13
  190. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +15 -12
  191. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +5 -3
  192. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +5 -5
  193. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +11 -11
  194. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
  195. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +34 -22
  196. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +1 -1
  197. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +8 -8
  198. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  200. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +13 -13
  201. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +3 -3
  202. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  203. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  204. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +5 -5
  205. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +126 -160
  206. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +11 -8
  207. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
  208. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +3 -3
  209. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  210. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +38 -37
  211. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +3 -2
  212. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +1 -1
  213. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +1 -1
  214. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +7 -7
  215. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +3 -2
  216. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  217. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +2 -2
  218. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +2 -1
  219. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +14 -14
  221. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +7 -7
  222. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +15 -15
  223. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  224. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  225. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  227. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
  228. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  229. package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder.html +1 -1
  230. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +24 -18
  231. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +6 -5
  232. package/SVF-doxygen/html/html/dir_862d3276083eaac55caed79b9120bf29.html +2 -0
  233. package/SVF-doxygen/html/html/files.html +14 -13
  234. package/SVF-doxygen/html/html/functions_d.html +1 -1
  235. package/SVF-doxygen/html/html/functions_func_d.html +1 -1
  236. package/SVF-doxygen/html/html/functions_func_g.html +2 -2
  237. package/SVF-doxygen/html/html/functions_func_i.html +11 -8
  238. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  239. package/SVF-doxygen/html/html/functions_g.html +2 -2
  240. package/SVF-doxygen/html/html/functions_i.html +16 -13
  241. package/SVF-doxygen/html/html/functions_l.html +3 -3
  242. package/SVF-doxygen/html/html/functions_o.html +6 -6
  243. package/SVF-doxygen/html/html/functions_p.html +7 -3
  244. package/SVF-doxygen/html/html/functions_r.html +1 -1
  245. package/SVF-doxygen/html/html/functions_s.html +8 -8
  246. package/SVF-doxygen/html/html/functions_v.html +3 -3
  247. package/SVF-doxygen/html/html/globals_a.html +5 -5
  248. package/SVF-doxygen/html/html/globals_c.html +2 -4
  249. package/SVF-doxygen/html/html/globals_e.html +1 -1
  250. package/SVF-doxygen/html/html/globals_f.html +1 -1
  251. package/SVF-doxygen/html/html/globals_func.html +1 -1
  252. package/SVF-doxygen/html/html/globals_g.html +12 -12
  253. package/SVF-doxygen/html/html/globals_l.html +4 -4
  254. package/SVF-doxygen/html/html/globals_s.html +4 -4
  255. package/SVF-doxygen/html/html/globals_v.html +4 -4
  256. package/SVF-doxygen/html/html/globals_vars.html +33 -35
  257. package/SVF-doxygen/html/html/namespaceSVF.html +26 -23
  258. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +11 -11
  259. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +4 -4
  260. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +25 -23
  261. package/SVF-doxygen/html/html/search/all_1.js +2 -2
  262. package/SVF-doxygen/html/html/search/all_10.js +6 -6
  263. package/SVF-doxygen/html/html/search/all_11.js +1 -1
  264. package/SVF-doxygen/html/html/search/all_12.js +7 -7
  265. package/SVF-doxygen/html/html/search/all_13.js +3 -3
  266. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  267. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  268. package/SVF-doxygen/html/html/search/all_2.js +1 -0
  269. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  270. package/SVF-doxygen/html/html/search/all_4.js +1 -1
  271. package/SVF-doxygen/html/html/search/all_5.js +1 -1
  272. package/SVF-doxygen/html/html/search/all_6.js +1 -1
  273. package/SVF-doxygen/html/html/search/all_7.js +7 -7
  274. package/SVF-doxygen/html/html/search/all_9.js +5 -4
  275. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  276. package/SVF-doxygen/html/html/search/all_c.js +5 -5
  277. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  278. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  279. package/SVF-doxygen/html/html/search/files_1.js +1 -0
  280. package/SVF-doxygen/html/html/search/functions_3.js +1 -1
  281. package/SVF-doxygen/html/html/search/functions_5.js +1 -1
  282. package/SVF-doxygen/html/html/search/functions_6.js +2 -2
  283. package/SVF-doxygen/html/html/search/functions_8.js +2 -1
  284. package/SVF-doxygen/html/html/search/functions_f.js +1 -1
  285. package/SVF-doxygen/html/html/search/variables_1.js +2 -2
  286. package/SVF-doxygen/html/html/search/variables_12.js +2 -2
  287. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  288. package/SVF-doxygen/html/html/search/variables_15.js +2 -2
  289. package/SVF-doxygen/html/html/search/variables_3.js +1 -1
  290. package/SVF-doxygen/html/html/search/variables_5.js +1 -1
  291. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  292. package/SVF-doxygen/html/html/search/variables_7.js +5 -5
  293. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  294. package/SVF-doxygen/html/html/search/variables_c.js +3 -3
  295. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  296. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +3 -3
  297. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +1 -2
  298. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +1 -5
  299. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -5
  300. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +1 -1
  301. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  302. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  303. package/include/CFL/CFLAlias.h +2 -3
  304. package/include/CFL/CFLGrammar.h +2 -0
  305. package/include/CFL/CFLGrammar.txt +28 -28
  306. package/include/CFL/PEGGrammar.txt +7 -7
  307. package/include/CFL/VFG.txt +3 -3
  308. package/include/SVF-FE/BasicTypes.h +3 -0
  309. package/include/Util/BasicTypes.h +8 -101
  310. package/lib/CFL/CFLGrammar.cpp +33 -1
  311. package/lib/CFL/GrammarBuilder.cpp +1 -1
  312. package/lib/Util/BasicTypes.cpp +110 -0
  313. package/package.json +1 -1
@@ -170,6 +170,8 @@ Public Member Functions</h2></td></tr>
170
170
  <tr class="separator:a3c16f37c05de31fbd2be1ae9c0961e84"><td class="memSeparator" colspan="2">&#160;</td></tr>
171
171
  <tr class="memitem:a63389968c8d246a84562a8d17e08790b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structSVF_1_1GrammarBase_1_1Symbol.html">Symbol</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GrammarBase.html#a63389968c8d246a84562a8d17e08790b">insertNonTerminalSymbol</a> (<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> strLit)</td></tr>
172
172
  <tr class="separator:a63389968c8d246a84562a8d17e08790b"><td class="memSeparator" colspan="2">&#160;</td></tr>
173
+ <tr class="memitem:a7583350e892c62a454de8a8317e4c1b8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structSVF_1_1GrammarBase_1_1Symbol.html">Symbol</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GrammarBase.html#a7583350e892c62a454de8a8317e4c1b8">insertTerminalSymbol</a> (<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> strLit)</td></tr>
174
+ <tr class="separator:a7583350e892c62a454de8a8317e4c1b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
173
175
  <tr class="memitem:aa188ee22955b98c31abbf2b339b64d20"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GrammarBase.html#aa188ee22955b98c31abbf2b339b64d20">insertAttribute</a> (<a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">Kind</a> kind, <a class="el" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">Attribute</a> <a class="el" href="cJSON_8cpp.html#a8a1a0a26c50cc4becfc754bb68d1dc6b">a</a>)</td></tr>
174
176
  <tr class="separator:aa188ee22955b98c31abbf2b339b64d20"><td class="memSeparator" colspan="2">&#160;</td></tr>
175
177
  </table><table class="memberdecls">
@@ -422,8 +424,8 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
422
424
  </table>
423
425
  </div><div class="memdoc">
424
426
 
425
- <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00251">251</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
426
- <div class="fragment"><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> ((attribute &lt;&lt; <a class="code" href="classSVF_1_1GrammarBase.html#adc1413dc2e875a6e74bdb5b985cdd39f">EdgeKindMaskBits</a>)| kind );</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_adc1413dc2e875a6e74bdb5b985cdd39f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#adc1413dc2e875a6e74bdb5b985cdd39f">SVF::GrammarBase::EdgeKindMaskBits</a></div><div class="ttdeci">static constexpr unsigned char EdgeKindMaskBits</div><div class="ttdoc">We use the lower 8 bits to denote edge kind. </div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00262">CFLGrammar.h:262</a></div></div>
427
+ <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00253">253</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
428
+ <div class="fragment"><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> ((attribute &lt;&lt; <a class="code" href="classSVF_1_1GrammarBase.html#adc1413dc2e875a6e74bdb5b985cdd39f">EdgeKindMaskBits</a>)| kind );</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_adc1413dc2e875a6e74bdb5b985cdd39f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#adc1413dc2e875a6e74bdb5b985cdd39f">SVF::GrammarBase::EdgeKindMaskBits</a></div><div class="ttdeci">static constexpr unsigned char EdgeKindMaskBits</div><div class="ttdoc">We use the lower 8 bits to denote edge kind. </div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00264">CFLGrammar.h:264</a></div></div>
427
429
  </div><!-- fragment -->
428
430
  </div>
429
431
  </div>
@@ -451,7 +453,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
451
453
  </div><div class="memdoc">
452
454
 
453
455
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00233">233</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
454
- <div class="fragment"><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">attributeKinds</a>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ac3324324d2146cf04680cc4a4e444a2d"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">SVF::GrammarBase::attributeKinds</a></div><div class="ttdeci">Set&lt; Kind &gt; attributeKinds</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00269">CFLGrammar.h:269</a></div></div>
456
+ <div class="fragment"><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">attributeKinds</a>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ac3324324d2146cf04680cc4a4e444a2d"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">SVF::GrammarBase::attributeKinds</a></div><div class="ttdeci">Set&lt; Kind &gt; attributeKinds</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00271">CFLGrammar.h:271</a></div></div>
455
457
  </div><!-- fragment -->
456
458
  </div>
457
459
  </div>
@@ -479,7 +481,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
479
481
  </div><div class="memdoc">
480
482
 
481
483
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00185">185</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
482
- <div class="fragment"><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">kind2AttrsMap</a>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a9782f4baeece8095f8a55cadd049ffce"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">SVF::GrammarBase::kind2AttrsMap</a></div><div class="ttdeci">Map&lt; Kind, Set&lt; Attribute &gt; &gt; kind2AttrsMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00270">CFLGrammar.h:270</a></div></div>
484
+ <div class="fragment"><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">kind2AttrsMap</a>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a9782f4baeece8095f8a55cadd049ffce"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">SVF::GrammarBase::kind2AttrsMap</a></div><div class="ttdeci">Map&lt; Kind, Set&lt; Attribute &gt; &gt; kind2AttrsMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00272">CFLGrammar.h:272</a></div></div>
483
485
  </div><!-- fragment -->
484
486
  </div>
485
487
  </div>
@@ -507,7 +509,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
507
509
  </div><div class="memdoc">
508
510
 
509
511
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00160">160</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
510
- <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> this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">nonterminals</a>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ac0e54c6a5e87f9d91a5296504914849b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">SVF::GrammarBase::nonterminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; nonterminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00267">CFLGrammar.h:267</a></div></div>
512
+ <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> this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">nonterminals</a>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ac0e54c6a5e87f9d91a5296504914849b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">SVF::GrammarBase::nonterminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; nonterminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00269">CFLGrammar.h:269</a></div></div>
511
513
  </div><!-- fragment -->
512
514
  </div>
513
515
  </div>
@@ -535,7 +537,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
535
537
  </div><div class="memdoc">
536
538
 
537
539
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00180">180</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
538
- <div class="fragment"><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a5ba80e2f28d7b7a722a24901fcaf4ffd">rawProductions</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a5ba80e2f28d7b7a722a24901fcaf4ffd"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a5ba80e2f28d7b7a722a24901fcaf4ffd">SVF::GrammarBase::rawProductions</a></div><div class="ttdeci">SymbolMap&lt; Symbol, Productions &gt; rawProductions</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00271">CFLGrammar.h:271</a></div></div>
540
+ <div class="fragment"><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a5ba80e2f28d7b7a722a24901fcaf4ffd">rawProductions</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a5ba80e2f28d7b7a722a24901fcaf4ffd"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a5ba80e2f28d7b7a722a24901fcaf4ffd">SVF::GrammarBase::rawProductions</a></div><div class="ttdeci">SymbolMap&lt; Symbol, Productions &gt; rawProductions</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00273">CFLGrammar.h:273</a></div></div>
539
541
  </div><!-- fragment -->
540
542
  </div>
541
543
  </div>
@@ -563,7 +565,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
563
565
  </div><div class="memdoc">
564
566
 
565
567
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00195">195</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
566
- <div class="fragment"><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a604cb7d4850cfd12d3b8730e0cab84af">startKind</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a604cb7d4850cfd12d3b8730e0cab84af"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a604cb7d4850cfd12d3b8730e0cab84af">SVF::GrammarBase::startKind</a></div><div class="ttdeci">Kind startKind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00265">CFLGrammar.h:265</a></div></div>
568
+ <div class="fragment"><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a604cb7d4850cfd12d3b8730e0cab84af">startKind</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a604cb7d4850cfd12d3b8730e0cab84af"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a604cb7d4850cfd12d3b8730e0cab84af">SVF::GrammarBase::startKind</a></div><div class="ttdeci">Kind startKind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00267">CFLGrammar.h:267</a></div></div>
567
569
  </div><!-- fragment -->
568
570
  </div>
569
571
  </div>
@@ -629,7 +631,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
629
631
  </div><div class="memdoc">
630
632
 
631
633
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00170">170</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
632
- <div class="fragment"><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">terminals</a>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a079915fce4eb8e63433b06d79127261a"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">SVF::GrammarBase::terminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; terminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00268">CFLGrammar.h:268</a></div></div>
634
+ <div class="fragment"><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">terminals</a>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a079915fce4eb8e63433b06d79127261a"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">SVF::GrammarBase::terminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; terminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00270">CFLGrammar.h:270</a></div></div>
633
635
  </div><!-- fragment -->
634
636
  </div>
635
637
  </div>
@@ -657,7 +659,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
657
659
  </div><div class="memdoc">
658
660
 
659
661
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00190">190</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
660
- <div class="fragment"><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">totalKind</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ac9f86b0861e93eee2548aa7f5f3b7b7f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">SVF::GrammarBase::totalKind</a></div><div class="ttdeci">u32_t totalKind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00272">CFLGrammar.h:272</a></div></div>
662
+ <div class="fragment"><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">totalKind</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ac9f86b0861e93eee2548aa7f5f3b7b7f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">SVF::GrammarBase::totalKind</a></div><div class="ttdeci">u32_t totalKind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00274">CFLGrammar.h:274</a></div></div>
661
663
  </div><!-- fragment -->
662
664
  </div>
663
665
  </div>
@@ -695,8 +697,8 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
695
697
  </table>
696
698
  </div><div class="memdoc">
697
699
 
698
- <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00256">256</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
699
- <div class="fragment"><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> ((variableAttribute &lt;&lt; <a class="code" href="classSVF_1_1GrammarBase.html#a2dcb7647b5be7b3ab1dad2c494828854">AttributedKindMaskBits</a>) | kind);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a2dcb7647b5be7b3ab1dad2c494828854"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a2dcb7647b5be7b3ab1dad2c494828854">SVF::GrammarBase::AttributedKindMaskBits</a></div><div class="ttdeci">static constexpr unsigned char AttributedKindMaskBits</div><div class="ttdoc">We use the lower 24 bits to denote attributed kind. </div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00263">CFLGrammar.h:263</a></div></div>
700
+ <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00258">258</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
701
+ <div class="fragment"><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> ((variableAttribute &lt;&lt; <a class="code" href="classSVF_1_1GrammarBase.html#a2dcb7647b5be7b3ab1dad2c494828854">AttributedKindMaskBits</a>) | kind);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a2dcb7647b5be7b3ab1dad2c494828854"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a2dcb7647b5be7b3ab1dad2c494828854">SVF::GrammarBase::AttributedKindMaskBits</a></div><div class="ttdeci">static constexpr unsigned char AttributedKindMaskBits</div><div class="ttdoc">We use the lower 24 bits to denote attributed kind. </div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00265">CFLGrammar.h:265</a></div></div>
700
702
  </div><!-- fragment -->
701
703
  </div>
702
704
  </div>
@@ -726,10 +728,10 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
726
728
  </table>
727
729
  </div><div class="memdoc">
728
730
 
729
- <p class="definition">Definition at line <a class="el" href="CFLGrammar_8cpp_source.html#l00262">262</a> of file <a class="el" href="CFLGrammar_8cpp_source.html">CFLGrammar.cpp</a>.</p>
730
- <div class="fragment"><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;{</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">attributeKinds</a>.insert(kind);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">kind2AttrsMap</a>.find(kind)!= <a class="code" href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">kind2AttrsMap</a>.end())</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">kind2AttrsMap</a>[kind].insert(attribute);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;CFLGrammar::Attribute&gt;</a> attrs {attribute};</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">kind2AttrsMap</a>.insert(make_pair(kind, attrs));</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ac3324324d2146cf04680cc4a4e444a2d"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">SVF::GrammarBase::attributeKinds</a></div><div class="ttdeci">Set&lt; Kind &gt; attributeKinds</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00269">CFLGrammar.h:269</a></div></div>
731
+ <p class="definition">Definition at line <a class="el" href="CFLGrammar_8cpp_source.html#l00294">294</a> of file <a class="el" href="CFLGrammar_8cpp_source.html">CFLGrammar.cpp</a>.</p>
732
+ <div class="fragment"><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;{</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">attributeKinds</a>.insert(kind);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">kind2AttrsMap</a>.find(kind)!= <a class="code" href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">kind2AttrsMap</a>.end())</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">kind2AttrsMap</a>[kind].insert(attribute);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; {</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;CFLGrammar::Attribute&gt;</a> attrs {attribute};</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">kind2AttrsMap</a>.insert(make_pair(kind, attrs));</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ac3324324d2146cf04680cc4a4e444a2d"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">SVF::GrammarBase::attributeKinds</a></div><div class="ttdeci">Set&lt; Kind &gt; attributeKinds</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00271">CFLGrammar.h:271</a></div></div>
731
733
  <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00105">SVFBasicTypes.h:105</a></div></div>
732
- <div class="ttc" id="classSVF_1_1GrammarBase_html_a9782f4baeece8095f8a55cadd049ffce"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">SVF::GrammarBase::kind2AttrsMap</a></div><div class="ttdeci">Map&lt; Kind, Set&lt; Attribute &gt; &gt; kind2AttrsMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00270">CFLGrammar.h:270</a></div></div>
734
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_a9782f4baeece8095f8a55cadd049ffce"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">SVF::GrammarBase::kind2AttrsMap</a></div><div class="ttdeci">Map&lt; Kind, Set&lt; Attribute &gt; &gt; kind2AttrsMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00272">CFLGrammar.h:272</a></div></div>
733
735
  </div><!-- fragment -->
734
736
  </div>
735
737
  </div>
@@ -761,9 +763,9 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
761
763
 
762
764
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8cpp_source.html#l00178">178</a> of file <a class="el" href="CFLGrammar_8cpp_source.html">CFLGrammar.cpp</a>.</p>
763
765
  <div class="fragment"><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;{</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">Kind</a> kind;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">nonterminals</a>.find(kindStr) == <a class="code" href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">nonterminals</a>.end())</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; kind = <a class="code" href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">totalKind</a>++;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">nonterminals</a>.insert({kindStr, kind});</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; kind = <a class="code" href="classSVF_1_1GrammarBase.html#ad2d56d8cdc4539d4201d1995fb36e772">str2Kind</a>(kindStr);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> kind;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ad2d56d8cdc4539d4201d1995fb36e772"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ad2d56d8cdc4539d4201d1995fb36e772">SVF::GrammarBase::str2Kind</a></div><div class="ttdeci">Kind str2Kind(std::string str) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00055">CFLGrammar.cpp:55</a></div></div>
764
- <div class="ttc" id="classSVF_1_1GrammarBase_html_ac9f86b0861e93eee2548aa7f5f3b7b7f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">SVF::GrammarBase::totalKind</a></div><div class="ttdeci">u32_t totalKind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00272">CFLGrammar.h:272</a></div></div>
766
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_ac9f86b0861e93eee2548aa7f5f3b7b7f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">SVF::GrammarBase::totalKind</a></div><div class="ttdeci">u32_t totalKind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00274">CFLGrammar.h:274</a></div></div>
765
767
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a7aef5c42fbd8a62dd4a541cc0e8e8187"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">SVF::GrammarBase::Kind</a></div><div class="ttdeci">u32_t Kind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00039">CFLGrammar.h:39</a></div></div>
766
- <div class="ttc" id="classSVF_1_1GrammarBase_html_ac0e54c6a5e87f9d91a5296504914849b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">SVF::GrammarBase::nonterminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; nonterminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00267">CFLGrammar.h:267</a></div></div>
768
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_ac0e54c6a5e87f9d91a5296504914849b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">SVF::GrammarBase::nonterminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; nonterminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00269">CFLGrammar.h:269</a></div></div>
767
769
  </div><!-- fragment -->
768
770
  </div>
769
771
  </div>
@@ -785,7 +787,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
785
787
 
786
788
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8cpp_source.html#l00231">231</a> of file <a class="el" href="CFLGrammar_8cpp_source.html">CFLGrammar.cpp</a>.</p>
787
789
  <div class="fragment"><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;{</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#ad4f53184d04d9f7a737b19f63d002550">Symbol</a> symbol;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> kindStr = <a class="code" href="classSVF_1_1GrammarBase.html#a9cc406edc117b3abd07a85f66ca892a0">extractKindStrFromSymbolStr</a>(symbolStr);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> attributeStr = <a class="code" href="classSVF_1_1GrammarBase.html#a9f56cebea336079e35f5f3a288eb356f">extractAttributeStrFromSymbolStr</a>(symbolStr);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; symbol.kind = <a class="code" href="classSVF_1_1GrammarBase.html#ac15b20ef3698ddab09c4c60e302ea4a0">insertNonterminalKind</a>(kindStr);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">if</span> ( attributeStr == <span class="stringliteral">&quot;&quot;</span>) <span class="keywordflow">return</span> symbol;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">if</span> ( (attributeStr.size() == 1) &amp;&amp; (std::isalpha(attributeStr[attributeStr.size()-1])) )</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">attributeKinds</a>.insert(symbol.kind);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; symbol.variableAttribute = (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)attributeStr[attributeStr.size()-1];</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">char</span> &amp;c : attributeStr)</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; {</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span> ( std::isdigit(c) == <span class="keyword">false</span> )</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVFUtil::errMsg</a>(<span class="stringliteral">&quot;\t Symbol Attribute Parse Failure :&quot;</span>) &lt;&lt; symbolStr</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; &lt;&lt; <span class="stringliteral">&quot; Attribute:&quot;</span> &lt;&lt; attributeStr &lt;&lt; <span class="stringliteral">&quot; (only number or single alphabet.)&quot;</span>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;grammar loading failed!&quot;</span>);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">attributeKinds</a>.insert(symbol.kind);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; symbol.attribute = std::stoi(attributeStr);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> symbol;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ac15b20ef3698ddab09c4c60e302ea4a0"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac15b20ef3698ddab09c4c60e302ea4a0">SVF::GrammarBase::insertNonterminalKind</a></div><div class="ttdeci">Kind insertNonterminalKind(std::string const kindStr)</div><div class="ttdoc">Insert kind to nonterminal and return kind. </div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00178">CFLGrammar.cpp:178</a></div></div>
788
- <div class="ttc" id="classSVF_1_1GrammarBase_html_ac3324324d2146cf04680cc4a4e444a2d"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">SVF::GrammarBase::attributeKinds</a></div><div class="ttdeci">Set&lt; Kind &gt; attributeKinds</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00269">CFLGrammar.h:269</a></div></div>
790
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_ac3324324d2146cf04680cc4a4e444a2d"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">SVF::GrammarBase::attributeKinds</a></div><div class="ttdeci">Set&lt; Kind &gt; attributeKinds</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00271">CFLGrammar.h:271</a></div></div>
789
791
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
790
792
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
791
793
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a9cc406edc117b3abd07a85f66ca892a0"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a9cc406edc117b3abd07a85f66ca892a0">SVF::GrammarBase::extractKindStrFromSymbolStr</a></div><div class="ttdeci">std::string extractKindStrFromSymbolStr(const std::string symbolStr) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00193">CFLGrammar.cpp:193</a></div></div>
@@ -813,9 +815,9 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
813
815
  </div><div class="memdoc">
814
816
 
815
817
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8cpp_source.html#l00217">217</a> of file <a class="el" href="CFLGrammar_8cpp_source.html">CFLGrammar.cpp</a>.</p>
816
- <div class="fragment"><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;{</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#ad4f53184d04d9f7a737b19f63d002550">Symbol</a> symbol;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span> (isupper(symbolStr[0]))</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; symbol = <a class="code" href="classSVF_1_1GrammarBase.html#a63389968c8d246a84562a8d17e08790b">insertNonTerminalSymbol</a>(symbolStr);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; symbol.kind = <a class="code" href="classSVF_1_1GrammarBase.html#ad2f1a578ba72a2b600014b21b6f2d542">insertTerminalKind</a>(symbolStr);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> symbol;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a63389968c8d246a84562a8d17e08790b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a63389968c8d246a84562a8d17e08790b">SVF::GrammarBase::insertNonTerminalSymbol</a></div><div class="ttdeci">Symbol insertNonTerminalSymbol(std::string strLit)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00231">CFLGrammar.cpp:231</a></div></div>
818
+ <div class="fragment"><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;{</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#ad4f53184d04d9f7a737b19f63d002550">Symbol</a> symbol;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span> (isupper(symbolStr[0]))</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; symbol = <a class="code" href="classSVF_1_1GrammarBase.html#a63389968c8d246a84562a8d17e08790b">insertNonTerminalSymbol</a>(symbolStr);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; symbol = <a class="code" href="classSVF_1_1GrammarBase.html#a7583350e892c62a454de8a8317e4c1b8">insertTerminalSymbol</a>(symbolStr);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> symbol;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a7583350e892c62a454de8a8317e4c1b8"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7583350e892c62a454de8a8317e4c1b8">SVF::GrammarBase::insertTerminalSymbol</a></div><div class="ttdeci">Symbol insertTerminalSymbol(std::string strLit)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00262">CFLGrammar.cpp:262</a></div></div>
819
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_a63389968c8d246a84562a8d17e08790b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a63389968c8d246a84562a8d17e08790b">SVF::GrammarBase::insertNonTerminalSymbol</a></div><div class="ttdeci">Symbol insertNonTerminalSymbol(std::string strLit)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00231">CFLGrammar.cpp:231</a></div></div>
817
820
  <div class="ttc" id="classSVF_1_1GrammarBase_html_ad4f53184d04d9f7a737b19f63d002550"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ad4f53184d04d9f7a737b19f63d002550">SVF::GrammarBase::Symbol</a></div><div class="ttdeci">struct SVF::GrammarBase::Symbol Symbol</div></div>
818
- <div class="ttc" id="classSVF_1_1GrammarBase_html_ad2f1a578ba72a2b600014b21b6f2d542"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ad2f1a578ba72a2b600014b21b6f2d542">SVF::GrammarBase::insertTerminalKind</a></div><div class="ttdeci">Kind insertTerminalKind(std::string strLit)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00163">CFLGrammar.cpp:163</a></div></div>
819
821
  </div><!-- fragment -->
820
822
  </div>
821
823
  </div>
@@ -838,12 +840,41 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
838
840
 
839
841
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8cpp_source.html#l00163">163</a> of file <a class="el" href="CFLGrammar_8cpp_source.html">CFLGrammar.cpp</a>.</p>
840
842
  <div class="fragment"><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;{</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">Kind</a> kind;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">terminals</a>.find(kindStr) == <a class="code" href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">terminals</a>.end())</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; kind = <a class="code" href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">totalKind</a>++;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">terminals</a>.insert({kindStr, kind});</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; kind = <a class="code" href="classSVF_1_1GrammarBase.html#ad2d56d8cdc4539d4201d1995fb36e772">str2Kind</a>(kindStr);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> kind;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ad2d56d8cdc4539d4201d1995fb36e772"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ad2d56d8cdc4539d4201d1995fb36e772">SVF::GrammarBase::str2Kind</a></div><div class="ttdeci">Kind str2Kind(std::string str) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00055">CFLGrammar.cpp:55</a></div></div>
841
- <div class="ttc" id="classSVF_1_1GrammarBase_html_a079915fce4eb8e63433b06d79127261a"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">SVF::GrammarBase::terminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; terminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00268">CFLGrammar.h:268</a></div></div>
842
- <div class="ttc" id="classSVF_1_1GrammarBase_html_ac9f86b0861e93eee2548aa7f5f3b7b7f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">SVF::GrammarBase::totalKind</a></div><div class="ttdeci">u32_t totalKind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00272">CFLGrammar.h:272</a></div></div>
843
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_a079915fce4eb8e63433b06d79127261a"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">SVF::GrammarBase::terminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; terminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00270">CFLGrammar.h:270</a></div></div>
844
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_ac9f86b0861e93eee2548aa7f5f3b7b7f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">SVF::GrammarBase::totalKind</a></div><div class="ttdeci">u32_t totalKind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00274">CFLGrammar.h:274</a></div></div>
843
845
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a7aef5c42fbd8a62dd4a541cc0e8e8187"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">SVF::GrammarBase::Kind</a></div><div class="ttdeci">u32_t Kind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00039">CFLGrammar.h:39</a></div></div>
844
846
  </div><!-- fragment -->
845
847
  </div>
846
848
  </div>
849
+ <a id="a7583350e892c62a454de8a8317e4c1b8"></a>
850
+ <h2 class="memtitle"><span class="permalink"><a href="#a7583350e892c62a454de8a8317e4c1b8">&#9670;&nbsp;</a></span>insertTerminalSymbol()</h2>
851
+
852
+ <div class="memitem">
853
+ <div class="memproto">
854
+ <table class="memname">
855
+ <tr>
856
+ <td class="memname"><a class="el" href="structSVF_1_1GrammarBase_1_1Symbol.html">GrammarBase::Symbol</a> GrammarBase::insertTerminalSymbol </td>
857
+ <td>(</td>
858
+ <td class="paramtype"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td>
859
+ <td class="paramname"><em>strLit</em></td><td>)</td>
860
+ <td></td>
861
+ </tr>
862
+ </table>
863
+ </div><div class="memdoc">
864
+
865
+ <p class="definition">Definition at line <a class="el" href="CFLGrammar_8cpp_source.html#l00262">262</a> of file <a class="el" href="CFLGrammar_8cpp_source.html">CFLGrammar.cpp</a>.</p>
866
+ <div class="fragment"><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;{</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#ad4f53184d04d9f7a737b19f63d002550">Symbol</a> symbol;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> kindStr = <a class="code" href="classSVF_1_1GrammarBase.html#a9cc406edc117b3abd07a85f66ca892a0">extractKindStrFromSymbolStr</a>(symbolStr);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> attributeStr = <a class="code" href="classSVF_1_1GrammarBase.html#a9f56cebea336079e35f5f3a288eb356f">extractAttributeStrFromSymbolStr</a>(symbolStr);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; symbol.kind = <a class="code" href="classSVF_1_1GrammarBase.html#ad2f1a578ba72a2b600014b21b6f2d542">insertTerminalKind</a>(kindStr);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">if</span> ( attributeStr == <span class="stringliteral">&quot;&quot;</span>) <span class="keywordflow">return</span> symbol;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span> ( (attributeStr.size() == 1) &amp;&amp; (std::isalpha(attributeStr[attributeStr.size()-1])) )</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">attributeKinds</a>.insert(symbol.kind);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; symbol.variableAttribute = (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)attributeStr[attributeStr.size()-1];</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">char</span> &amp;c : attributeStr)</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">if</span> ( std::isdigit(c) == <span class="keyword">false</span> )</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVFUtil::errMsg</a>(<span class="stringliteral">&quot;\t Symbol Attribute Parse Failure :&quot;</span>) &lt;&lt; symbolStr</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; &lt;&lt; <span class="stringliteral">&quot; Attribute:&quot;</span> &lt;&lt; attributeStr &lt;&lt; <span class="stringliteral">&quot; (only number or single alphabet.)&quot;</span>;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;grammar loading failed!&quot;</span>);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; }</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">attributeKinds</a>.insert(symbol.kind);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; symbol.attribute = std::stoi(attributeStr);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">return</span> symbol;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ac3324324d2146cf04680cc4a4e444a2d"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">SVF::GrammarBase::attributeKinds</a></div><div class="ttdeci">Set&lt; Kind &gt; attributeKinds</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00271">CFLGrammar.h:271</a></div></div>
867
+ <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
868
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
869
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_a9cc406edc117b3abd07a85f66ca892a0"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a9cc406edc117b3abd07a85f66ca892a0">SVF::GrammarBase::extractKindStrFromSymbolStr</a></div><div class="ttdeci">std::string extractKindStrFromSymbolStr(const std::string symbolStr) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00193">CFLGrammar.cpp:193</a></div></div>
870
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_a9f56cebea336079e35f5f3a288eb356f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a9f56cebea336079e35f5f3a288eb356f">SVF::GrammarBase::extractAttributeStrFromSymbolStr</a></div><div class="ttdeci">std::string extractAttributeStrFromSymbolStr(const std::string symbolStr) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00205">CFLGrammar.cpp:205</a></div></div>
871
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_ad4f53184d04d9f7a737b19f63d002550"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ad4f53184d04d9f7a737b19f63d002550">SVF::GrammarBase::Symbol</a></div><div class="ttdeci">struct SVF::GrammarBase::Symbol Symbol</div></div>
872
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a5d4bb92f5df30417f414397f8e58cf01"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(std::string msg)</div><div class="ttdoc">Print error message by converting a string into red string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00076">SVFUtil.cpp:76</a></div></div>
873
+ <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
874
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_ad2f1a578ba72a2b600014b21b6f2d542"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ad2f1a578ba72a2b600014b21b6f2d542">SVF::GrammarBase::insertTerminalKind</a></div><div class="ttdeci">Kind insertTerminalKind(std::string strLit)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00163">CFLGrammar.cpp:163</a></div></div>
875
+ </div><!-- fragment -->
876
+ </div>
877
+ </div>
847
878
  <a id="ac8ecc4293c5a63d2d30d0ca0832217d3"></a>
848
879
  <h2 class="memtitle"><span class="permalink"><a href="#ac8ecc4293c5a63d2d30d0ca0832217d3">&#9670;&nbsp;</a></span>kind2Str()</h2>
849
880
 
@@ -861,9 +892,9 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
861
892
  </div><div class="memdoc">
862
893
 
863
894
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8cpp_source.html#l00099">99</a> of file <a class="el" href="CFLGrammar_8cpp_source.html">CFLGrammar.cpp</a>.</p>
864
- <div class="fragment"><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</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="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;i : <a class="code" href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">terminals</a>)</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; <span class="keywordflow">if</span> (i.second == kind)</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; key = i.first;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> key;</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="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> nkey = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;ni : <a class="code" href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">nonterminals</a>)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (ni.second == kind)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; nkey = ni.first;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> nkey;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</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;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a079915fce4eb8e63433b06d79127261a"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">SVF::GrammarBase::terminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; terminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00268">CFLGrammar.h:268</a></div></div>
895
+ <div class="fragment"><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</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="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;i : <a class="code" href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">terminals</a>)</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; <span class="keywordflow">if</span> (i.second == kind)</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; key = i.first;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> key;</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="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> nkey = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;ni : <a class="code" href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">nonterminals</a>)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (ni.second == kind)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; nkey = ni.first;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> nkey;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</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;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a079915fce4eb8e63433b06d79127261a"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">SVF::GrammarBase::terminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; terminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00270">CFLGrammar.h:270</a></div></div>
865
896
  <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
866
- <div class="ttc" id="classSVF_1_1GrammarBase_html_ac0e54c6a5e87f9d91a5296504914849b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">SVF::GrammarBase::nonterminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; nonterminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00267">CFLGrammar.h:267</a></div></div>
897
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_ac0e54c6a5e87f9d91a5296504914849b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">SVF::GrammarBase::nonterminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; nonterminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00269">CFLGrammar.h:269</a></div></div>
867
898
  </div><!-- fragment -->
868
899
  </div>
869
900
  </div>
@@ -884,7 +915,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
884
915
  </div><div class="memdoc">
885
916
 
886
917
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8cpp_source.html#l00050">50</a> of file <a class="el" href="CFLGrammar_8cpp_source.html">CFLGrammar.cpp</a>.</p>
887
- <div class="fragment"><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; this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">attributeKinds</a> = <a class="code" href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">attributeKinds</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ac3324324d2146cf04680cc4a4e444a2d"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">SVF::GrammarBase::attributeKinds</a></div><div class="ttdeci">Set&lt; Kind &gt; attributeKinds</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00269">CFLGrammar.h:269</a></div></div>
918
+ <div class="fragment"><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; this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">attributeKinds</a> = <a class="code" href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">attributeKinds</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ac3324324d2146cf04680cc4a4e444a2d"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac3324324d2146cf04680cc4a4e444a2d">SVF::GrammarBase::attributeKinds</a></div><div class="ttdeci">Set&lt; Kind &gt; attributeKinds</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00271">CFLGrammar.h:271</a></div></div>
888
919
  </div><!-- fragment -->
889
920
  </div>
890
921
  </div>
@@ -905,7 +936,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
905
936
  </div><div class="memdoc">
906
937
 
907
938
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8cpp_source.html#l00045">45</a> of file <a class="el" href="CFLGrammar_8cpp_source.html">CFLGrammar.cpp</a>.</p>
908
- <div class="fragment"><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; this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">kind2AttrsMap</a> = <a class="code" href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">kind2AttrsMap</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a9782f4baeece8095f8a55cadd049ffce"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">SVF::GrammarBase::kind2AttrsMap</a></div><div class="ttdeci">Map&lt; Kind, Set&lt; Attribute &gt; &gt; kind2AttrsMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00270">CFLGrammar.h:270</a></div></div>
939
+ <div class="fragment"><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; this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">kind2AttrsMap</a> = <a class="code" href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">kind2AttrsMap</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a9782f4baeece8095f8a55cadd049ffce"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a9782f4baeece8095f8a55cadd049ffce">SVF::GrammarBase::kind2AttrsMap</a></div><div class="ttdeci">Map&lt; Kind, Set&lt; Attribute &gt; &gt; kind2AttrsMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00272">CFLGrammar.h:272</a></div></div>
909
940
  </div><!-- fragment -->
910
941
  </div>
911
942
  </div>
@@ -934,7 +965,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
934
965
  </div><div class="memdoc">
935
966
 
936
967
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00165">165</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
937
- <div class="fragment"><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">nonterminals</a> = <a class="code" href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">nonterminals</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ac0e54c6a5e87f9d91a5296504914849b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">SVF::GrammarBase::nonterminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; nonterminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00267">CFLGrammar.h:267</a></div></div>
968
+ <div class="fragment"><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">nonterminals</a> = <a class="code" href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">nonterminals</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ac0e54c6a5e87f9d91a5296504914849b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">SVF::GrammarBase::nonterminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; nonterminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00269">CFLGrammar.h:269</a></div></div>
938
969
  </div><!-- fragment -->
939
970
  </div>
940
971
  </div>
@@ -955,7 +986,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
955
986
  </div><div class="memdoc">
956
987
 
957
988
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8cpp_source.html#l00040">40</a> of file <a class="el" href="CFLGrammar_8cpp_source.html">CFLGrammar.cpp</a>.</p>
958
- <div class="fragment"><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a5ba80e2f28d7b7a722a24901fcaf4ffd">rawProductions</a> = <a class="code" href="classSVF_1_1GrammarBase.html#a5ba80e2f28d7b7a722a24901fcaf4ffd">rawProductions</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a5ba80e2f28d7b7a722a24901fcaf4ffd"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a5ba80e2f28d7b7a722a24901fcaf4ffd">SVF::GrammarBase::rawProductions</a></div><div class="ttdeci">SymbolMap&lt; Symbol, Productions &gt; rawProductions</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00271">CFLGrammar.h:271</a></div></div>
989
+ <div class="fragment"><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a5ba80e2f28d7b7a722a24901fcaf4ffd">rawProductions</a> = <a class="code" href="classSVF_1_1GrammarBase.html#a5ba80e2f28d7b7a722a24901fcaf4ffd">rawProductions</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a5ba80e2f28d7b7a722a24901fcaf4ffd"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a5ba80e2f28d7b7a722a24901fcaf4ffd">SVF::GrammarBase::rawProductions</a></div><div class="ttdeci">SymbolMap&lt; Symbol, Productions &gt; rawProductions</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00273">CFLGrammar.h:273</a></div></div>
959
990
  </div><!-- fragment -->
960
991
  </div>
961
992
  </div>
@@ -984,7 +1015,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
984
1015
  </div><div class="memdoc">
985
1016
 
986
1017
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00200">200</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
987
- <div class="fragment"><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a604cb7d4850cfd12d3b8730e0cab84af">startKind</a> = <a class="code" href="classSVF_1_1GrammarBase.html#a604cb7d4850cfd12d3b8730e0cab84af">startKind</a>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a604cb7d4850cfd12d3b8730e0cab84af"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a604cb7d4850cfd12d3b8730e0cab84af">SVF::GrammarBase::startKind</a></div><div class="ttdeci">Kind startKind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00265">CFLGrammar.h:265</a></div></div>
1018
+ <div class="fragment"><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a604cb7d4850cfd12d3b8730e0cab84af">startKind</a> = <a class="code" href="classSVF_1_1GrammarBase.html#a604cb7d4850cfd12d3b8730e0cab84af">startKind</a>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a604cb7d4850cfd12d3b8730e0cab84af"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a604cb7d4850cfd12d3b8730e0cab84af">SVF::GrammarBase::startKind</a></div><div class="ttdeci">Kind startKind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00267">CFLGrammar.h:267</a></div></div>
988
1019
  </div><!-- fragment -->
989
1020
  </div>
990
1021
  </div>
@@ -1013,7 +1044,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
1013
1044
  </div><div class="memdoc">
1014
1045
 
1015
1046
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00175">175</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1016
- <div class="fragment"><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">terminals</a> = <a class="code" href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">terminals</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a079915fce4eb8e63433b06d79127261a"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">SVF::GrammarBase::terminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; terminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00268">CFLGrammar.h:268</a></div></div>
1047
+ <div class="fragment"><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">terminals</a> = <a class="code" href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">terminals</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a079915fce4eb8e63433b06d79127261a"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">SVF::GrammarBase::terminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; terminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00270">CFLGrammar.h:270</a></div></div>
1017
1048
  </div><!-- fragment -->
1018
1049
  </div>
1019
1050
  </div>
@@ -1042,7 +1073,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
1042
1073
  </div><div class="memdoc">
1043
1074
 
1044
1075
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00205">205</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1045
- <div class="fragment"><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">totalKind</a> = <a class="code" href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">totalKind</a>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ac9f86b0861e93eee2548aa7f5f3b7b7f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">SVF::GrammarBase::totalKind</a></div><div class="ttdeci">u32_t totalKind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00272">CFLGrammar.h:272</a></div></div>
1076
+ <div class="fragment"><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; this-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">totalKind</a> = <a class="code" href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">totalKind</a>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ac9f86b0861e93eee2548aa7f5f3b7b7f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac9f86b0861e93eee2548aa7f5f3b7b7f">SVF::GrammarBase::totalKind</a></div><div class="ttdeci">u32_t totalKind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00274">CFLGrammar.h:274</a></div></div>
1046
1077
  </div><!-- fragment -->
1047
1078
  </div>
1048
1079
  </div>
@@ -1063,8 +1094,8 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
1063
1094
  </div><div class="memdoc">
1064
1095
 
1065
1096
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8cpp_source.html#l00055">55</a> of file <a class="el" href="CFLGrammar_8cpp_source.html">CFLGrammar.cpp</a>.</p>
1066
- <div class="fragment"><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><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="keyword">auto</span> tit = <a class="code" href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">terminals</a>.find(str);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(tit!=<a class="code" href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">terminals</a>.end())</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> tit-&gt;second;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">auto</span> nit = <a class="code" href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">nonterminals</a>.find(str);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span>(nit!=<a class="code" href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">nonterminals</a>.end())</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> nit-&gt;second;</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; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;kind not found!&quot;</span>);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; abort();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a079915fce4eb8e63433b06d79127261a"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">SVF::GrammarBase::terminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; terminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00268">CFLGrammar.h:268</a></div></div>
1067
- <div class="ttc" id="classSVF_1_1GrammarBase_html_ac0e54c6a5e87f9d91a5296504914849b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">SVF::GrammarBase::nonterminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; nonterminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00267">CFLGrammar.h:267</a></div></div>
1097
+ <div class="fragment"><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><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="keyword">auto</span> tit = <a class="code" href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">terminals</a>.find(str);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(tit!=<a class="code" href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">terminals</a>.end())</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> tit-&gt;second;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">auto</span> nit = <a class="code" href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">nonterminals</a>.find(str);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span>(nit!=<a class="code" href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">nonterminals</a>.end())</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> nit-&gt;second;</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; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;kind not found!&quot;</span>);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; abort();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_a079915fce4eb8e63433b06d79127261a"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">SVF::GrammarBase::terminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; terminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00270">CFLGrammar.h:270</a></div></div>
1098
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_ac0e54c6a5e87f9d91a5296504914849b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">SVF::GrammarBase::nonterminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; nonterminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00269">CFLGrammar.h:269</a></div></div>
1068
1099
  </div><!-- fragment -->
1069
1100
  </div>
1070
1101
  </div>
@@ -1114,10 +1145,10 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
1114
1145
 
1115
1146
  <p class="definition">Definition at line <a class="el" href="CFLGrammar_8cpp_source.html#l00125">125</a> of file <a class="el" href="CFLGrammar_8cpp_source.html">CFLGrammar.cpp</a>.</p>
1116
1147
  <div class="fragment"><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;{</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">Kind</a> kind = sym.kind;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">Attribute</a> attribute = sym.attribute;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;i : <a class="code" href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">terminals</a>)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (i.second == kind)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; key = i.first;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span>(attribute != 0)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; key.append(<span class="stringliteral">&quot;_&quot;</span>);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; key.append(std::to_string(attribute));</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">return</span> key;</div><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; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> nkey = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;ni : <a class="code" href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">nonterminals</a>)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span> (ni.second == kind)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; nkey = ni.first;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">if</span>(attribute != 0)</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; nkey.append(<span class="stringliteral">&quot;_&quot;</span>);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; nkey.append(std::to_string(attribute));</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> nkey;</div><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; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;}</div><div class="ttc" id="classSVF_1_1GrammarBase_html_ab070e5449d26e347b957d8b994d0303f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">SVF::GrammarBase::Attribute</a></div><div class="ttdeci">u32_t Attribute</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00040">CFLGrammar.h:40</a></div></div>
1117
- <div class="ttc" id="classSVF_1_1GrammarBase_html_a079915fce4eb8e63433b06d79127261a"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">SVF::GrammarBase::terminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; terminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00268">CFLGrammar.h:268</a></div></div>
1148
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_a079915fce4eb8e63433b06d79127261a"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a079915fce4eb8e63433b06d79127261a">SVF::GrammarBase::terminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; terminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00270">CFLGrammar.h:270</a></div></div>
1118
1149
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a7aef5c42fbd8a62dd4a541cc0e8e8187"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">SVF::GrammarBase::Kind</a></div><div class="ttdeci">u32_t Kind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00039">CFLGrammar.h:39</a></div></div>
1119
1150
  <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
1120
- <div class="ttc" id="classSVF_1_1GrammarBase_html_ac0e54c6a5e87f9d91a5296504914849b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">SVF::GrammarBase::nonterminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; nonterminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00267">CFLGrammar.h:267</a></div></div>
1151
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_ac0e54c6a5e87f9d91a5296504914849b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">SVF::GrammarBase::nonterminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; nonterminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00269">CFLGrammar.h:269</a></div></div>
1121
1152
  </div><!-- fragment -->
1122
1153
  </div>
1123
1154
  </div>
@@ -1144,7 +1175,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
1144
1175
 
1145
1176
  <p>We use the lower 24 bits to denote attributed kind. </p>
1146
1177
 
1147
- <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00263">263</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1178
+ <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00265">265</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1148
1179
 
1149
1180
  </div>
1150
1181
  </div>
@@ -1168,7 +1199,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
1168
1199
  </table>
1169
1200
  </div><div class="memdoc">
1170
1201
 
1171
- <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00269">269</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1202
+ <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00271">271</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1172
1203
 
1173
1204
  </div>
1174
1205
  </div>
@@ -1192,7 +1223,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
1192
1223
  </table>
1193
1224
  </div><div class="memdoc">
1194
1225
 
1195
- <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00264">264</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1226
+ <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00266">266</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1196
1227
 
1197
1228
  </div>
1198
1229
  </div>
@@ -1218,7 +1249,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
1218
1249
 
1219
1250
  <p>We use the lower 8 bits to denote edge kind. </p>
1220
1251
 
1221
- <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00262">262</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1252
+ <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00264">264</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1222
1253
 
1223
1254
  </div>
1224
1255
  </div>
@@ -1242,7 +1273,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
1242
1273
  </table>
1243
1274
  </div><div class="memdoc">
1244
1275
 
1245
- <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00270">270</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1276
+ <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00272">272</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1246
1277
 
1247
1278
  </div>
1248
1279
  </div>
@@ -1266,7 +1297,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
1266
1297
  </table>
1267
1298
  </div><div class="memdoc">
1268
1299
 
1269
- <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00267">267</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1300
+ <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00269">269</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1270
1301
 
1271
1302
  </div>
1272
1303
  </div>
@@ -1290,7 +1321,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
1290
1321
  </table>
1291
1322
  </div><div class="memdoc">
1292
1323
 
1293
- <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00271">271</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1324
+ <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00273">273</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1294
1325
 
1295
1326
  </div>
1296
1327
  </div>
@@ -1314,7 +1345,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
1314
1345
  </table>
1315
1346
  </div><div class="memdoc">
1316
1347
 
1317
- <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00265">265</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1348
+ <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00267">267</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1318
1349
 
1319
1350
  </div>
1320
1351
  </div>
@@ -1338,7 +1369,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
1338
1369
  </table>
1339
1370
  </div><div class="memdoc">
1340
1371
 
1341
- <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00268">268</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1372
+ <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00270">270</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1342
1373
 
1343
1374
  </div>
1344
1375
  </div>
@@ -1362,7 +1393,7 @@ template&lt;typename Key , typename Hash = SymbolVectorHash, typename KeyEqual
1362
1393
  </table>
1363
1394
  </div><div class="memdoc">
1364
1395
 
1365
- <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00272">272</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1396
+ <p class="definition">Definition at line <a class="el" href="CFLGrammar_8h_source.html#l00274">274</a> of file <a class="el" href="CFLGrammar_8h_source.html">CFLGrammar.h</a>.</p>
1366
1397
 
1367
1398
  </div>
1368
1399
  </div>