svf-tools 1.0.752 → 1.0.754

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 (374) hide show
  1. package/SVF-doxygen/html/html/BoundedZ3Expr_8cpp_source.html +3 -3
  2. package/SVF-doxygen/html/html/BoundedZ3Expr_8h.html +24 -1
  3. package/SVF-doxygen/html/html/BoundedZ3Expr_8h_source.html +373 -376
  4. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +76 -76
  5. package/SVF-doxygen/html/html/CFGNormalizer_8h.html +1 -1
  6. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +29 -29
  7. package/SVF-doxygen/html/html/CFGrammar_8cpp.html +88 -0
  8. package/SVF-doxygen/html/html/CFGrammar_8cpp_source.html +568 -0
  9. package/SVF-doxygen/html/html/CFGrammar_8h.html +108 -0
  10. package/SVF-doxygen/html/html/CFGrammar_8h_source.html +643 -0
  11. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +5 -5
  12. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +120 -127
  13. package/SVF-doxygen/html/html/CFLBase_8h_source.html +14 -14
  14. package/SVF-doxygen/html/html/CFLGramGraphChecker_8h.html +1 -1
  15. package/SVF-doxygen/html/html/CFLGramGraphChecker_8h_source.html +12 -12
  16. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +464 -409
  17. package/SVF-doxygen/html/html/CFLGraphBuilder_8h.html +10 -2
  18. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +120 -175
  19. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +2 -2
  20. package/SVF-doxygen/html/html/CFLGraph_8h.html +1 -1
  21. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +11 -11
  22. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +60 -60
  23. package/SVF-doxygen/html/html/CFLSolver_8h.html +1 -1
  24. package/SVF-doxygen/html/html/CFLSolver_8h_source.html +19 -19
  25. package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +2 -2
  26. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +5 -5
  27. package/SVF-doxygen/html/html/ConsExeState_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +4 -4
  29. package/SVF-doxygen/html/html/GrammarBuilder_8cpp_source.html +7 -7
  30. package/SVF-doxygen/html/html/GrammarBuilder_8h.html +1 -1
  31. package/SVF-doxygen/html/html/GrammarBuilder_8h_source.html +3 -3
  32. package/SVF-doxygen/html/html/GraphWriter_8cpp_source.html +1 -1
  33. package/SVF-doxygen/html/html/GraphWriter_8h_source.html +1 -1
  34. package/SVF-doxygen/html/html/NumericLiteral_8h_source.html +12 -12
  35. package/SVF-doxygen/html/html/PAGGrammar_8txt.html +209 -0
  36. package/SVF-doxygen/html/html/PEGGrammar_8txt.html +11 -11
  37. package/SVF-doxygen/html/html/SingleAbsValue_8h_source.html +4 -4
  38. package/SVF-doxygen/html/html/VFGGrammar_8txt.html +119 -0
  39. package/SVF-doxygen/html/html/annotated.html +6 -6
  40. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder-members.html +21 -20
  41. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +223 -220
  42. package/SVF-doxygen/html/html/classSVF_1_1BoundedZ3Expr.html +291 -296
  43. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer-members.html +10 -10
  44. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +119 -119
  45. package/SVF-doxygen/html/html/classSVF_1_1CFGrammar-members.html +158 -0
  46. package/SVF-doxygen/html/html/classSVF_1_1CFGrammar.html +1051 -0
  47. package/SVF-doxygen/html/html/classSVF_1_1CFGrammar.png +0 -0
  48. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +1 -1
  49. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +13 -13
  50. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +1 -1
  51. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +108 -114
  52. package/SVF-doxygen/html/html/classSVF_1_1CFLFIFOWorkList.html +17 -17
  53. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph-members.html +2 -2
  54. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +16 -16
  55. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder-members.html +17 -16
  56. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +333 -280
  57. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver-members.html +5 -5
  58. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +56 -56
  59. package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +2 -2
  60. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +1 -1
  61. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +14 -14
  62. package/SVF-doxygen/html/html/classSVF_1_1ConsExeState.html +1 -1
  63. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +4 -4
  64. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +76 -76
  65. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.png +0 -0
  66. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +4 -4
  67. package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder.html +5 -5
  68. package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral.html +11 -11
  69. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias-members.html +1 -1
  70. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +4 -4
  71. package/SVF-doxygen/html/html/classSVF_1_1POCRHybrid-members.html +1 -1
  72. package/SVF-doxygen/html/html/classSVF_1_1POCRHybrid.html +4 -4
  73. package/SVF-doxygen/html/html/classSVF_1_1POCRHybridSolver-members.html +7 -7
  74. package/SVF-doxygen/html/html/classSVF_1_1POCRHybridSolver.html +53 -53
  75. package/SVF-doxygen/html/html/classSVF_1_1POCRSolver-members.html +6 -6
  76. package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.html +47 -47
  77. package/SVF-doxygen/html/html/classSVF_1_1SingleAbsValue.html +3 -3
  78. package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder-members.html +21 -20
  79. package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder.html +148 -145
  80. package/SVF-doxygen/html/html/classes.html +6 -6
  81. package/SVF-doxygen/html/html/dir_1b8e404556d3e8597ae60437f0a084bf.html +7 -2
  82. package/SVF-doxygen/html/html/dir_7de7f3d0ab1cbd78bc64b135e4cd18be.html +80 -0
  83. package/SVF-doxygen/html/html/dir_8a9c8659eb68b9cbd3fead4690588a47.html +2 -2
  84. package/SVF-doxygen/html/html/files.html +14 -13
  85. package/SVF-doxygen/html/html/functions_a.html +5 -5
  86. package/SVF-doxygen/html/html/functions_b.html +9 -7
  87. package/SVF-doxygen/html/html/functions_c.html +5 -5
  88. package/SVF-doxygen/html/html/functions_d.html +1 -1
  89. package/SVF-doxygen/html/html/functions_e.html +4 -4
  90. package/SVF-doxygen/html/html/functions_f.html +2 -2
  91. package/SVF-doxygen/html/html/functions_func.html +5 -5
  92. package/SVF-doxygen/html/html/functions_func_b.html +9 -7
  93. package/SVF-doxygen/html/html/functions_func_c.html +5 -5
  94. package/SVF-doxygen/html/html/functions_func_d.html +1 -1
  95. package/SVF-doxygen/html/html/functions_func_e.html +3 -3
  96. package/SVF-doxygen/html/html/functions_func_f.html +1 -1
  97. package/SVF-doxygen/html/html/functions_func_g.html +13 -13
  98. package/SVF-doxygen/html/html/functions_func_h.html +3 -3
  99. package/SVF-doxygen/html/html/functions_func_i.html +1 -1
  100. package/SVF-doxygen/html/html/functions_func_n.html +2 -2
  101. package/SVF-doxygen/html/html/functions_func_p.html +2 -2
  102. package/SVF-doxygen/html/html/functions_func_r.html +1 -1
  103. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  104. package/SVF-doxygen/html/html/functions_g.html +15 -15
  105. package/SVF-doxygen/html/html/functions_h.html +3 -3
  106. package/SVF-doxygen/html/html/functions_i.html +2 -2
  107. package/SVF-doxygen/html/html/functions_k.html +3 -3
  108. package/SVF-doxygen/html/html/functions_l.html +5 -5
  109. package/SVF-doxygen/html/html/functions_n.html +3 -3
  110. package/SVF-doxygen/html/html/functions_o.html +13 -13
  111. package/SVF-doxygen/html/html/functions_p.html +16 -12
  112. package/SVF-doxygen/html/html/functions_r.html +1 -1
  113. package/SVF-doxygen/html/html/functions_s.html +17 -19
  114. package/SVF-doxygen/html/html/functions_t.html +3 -3
  115. package/SVF-doxygen/html/html/functions_type_k.html +2 -2
  116. package/SVF-doxygen/html/html/functions_type_p.html +1 -1
  117. package/SVF-doxygen/html/html/functions_type_s.html +3 -3
  118. package/SVF-doxygen/html/html/functions_v.html +6 -6
  119. package/SVF-doxygen/html/html/functions_vars_e.html +1 -1
  120. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  121. package/SVF-doxygen/html/html/functions_vars_g.html +2 -2
  122. package/SVF-doxygen/html/html/functions_vars_k.html +1 -1
  123. package/SVF-doxygen/html/html/functions_vars_n.html +1 -1
  124. package/SVF-doxygen/html/html/functions_vars_s.html +2 -2
  125. package/SVF-doxygen/html/html/functions_w.html +9 -9
  126. package/SVF-doxygen/html/html/globals.html +6 -4
  127. package/SVF-doxygen/html/html/globals_defs.html +7 -0
  128. package/SVF-doxygen/html/html/globals_e.html +1 -1
  129. package/SVF-doxygen/html/html/globals_g.html +3 -3
  130. package/SVF-doxygen/html/html/globals_m.html +4 -1
  131. package/SVF-doxygen/html/html/globals_s.html +1 -1
  132. package/SVF-doxygen/html/html/globals_v.html +2 -2
  133. package/SVF-doxygen/html/html/globals_vars.html +12 -10
  134. package/SVF-doxygen/html/html/hierarchy.html +1 -1
  135. package/SVF-doxygen/html/html/menudata.js +1 -0
  136. package/SVF-doxygen/html/html/namespaceSVF.html +40 -2
  137. package/SVF-doxygen/html/html/namespacemembers_b.html +3 -0
  138. package/SVF-doxygen/html/html/namespacemembers_enum.html +3 -0
  139. package/SVF-doxygen/html/html/search/all_0.js +147 -146
  140. package/SVF-doxygen/html/html/search/all_1.js +478 -478
  141. package/SVF-doxygen/html/html/search/all_10.js +327 -325
  142. package/SVF-doxygen/html/html/search/all_11.js +208 -208
  143. package/SVF-doxygen/html/html/search/all_12.js +545 -545
  144. package/SVF-doxygen/html/html/search/all_13.js +189 -189
  145. package/SVF-doxygen/html/html/search/all_14.js +66 -66
  146. package/SVF-doxygen/html/html/search/all_15.js +170 -170
  147. package/SVF-doxygen/html/html/search/all_16.js +60 -60
  148. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  149. package/SVF-doxygen/html/html/search/all_18.js +1 -1
  150. package/SVF-doxygen/html/html/search/all_19.js +10 -10
  151. package/SVF-doxygen/html/html/search/all_1a.js +169 -169
  152. package/SVF-doxygen/html/html/search/all_2.js +159 -156
  153. package/SVF-doxygen/html/html/search/all_3.js +637 -638
  154. package/SVF-doxygen/html/html/search/all_4.js +227 -227
  155. package/SVF-doxygen/html/html/search/all_5.js +156 -156
  156. package/SVF-doxygen/html/html/search/all_6.js +223 -223
  157. package/SVF-doxygen/html/html/search/all_7.js +1012 -1012
  158. package/SVF-doxygen/html/html/search/all_8.js +192 -192
  159. package/SVF-doxygen/html/html/search/all_9.js +597 -597
  160. package/SVF-doxygen/html/html/search/all_a.js +47 -47
  161. package/SVF-doxygen/html/html/search/all_b.js +26 -26
  162. package/SVF-doxygen/html/html/search/all_c.js +113 -113
  163. package/SVF-doxygen/html/html/search/all_d.js +196 -196
  164. package/SVF-doxygen/html/html/search/all_e.js +206 -206
  165. package/SVF-doxygen/html/html/search/all_f.js +122 -122
  166. package/SVF-doxygen/html/html/search/classes_0.js +26 -26
  167. package/SVF-doxygen/html/html/search/classes_1.js +9 -9
  168. package/SVF-doxygen/html/html/search/classes_10.js +73 -73
  169. package/SVF-doxygen/html/html/search/classes_11.js +15 -15
  170. package/SVF-doxygen/html/html/search/classes_12.js +2 -2
  171. package/SVF-doxygen/html/html/search/classes_13.js +10 -10
  172. package/SVF-doxygen/html/html/search/classes_14.js +14 -14
  173. package/SVF-doxygen/html/html/search/classes_15.js +1 -1
  174. package/SVF-doxygen/html/html/search/classes_2.js +76 -76
  175. package/SVF-doxygen/html/html/search/classes_3.js +35 -35
  176. package/SVF-doxygen/html/html/search/classes_4.js +10 -10
  177. package/SVF-doxygen/html/html/search/classes_5.js +28 -28
  178. package/SVF-doxygen/html/html/search/classes_6.js +98 -98
  179. package/SVF-doxygen/html/html/search/classes_7.js +33 -33
  180. package/SVF-doxygen/html/html/search/classes_8.js +56 -56
  181. package/SVF-doxygen/html/html/search/classes_9.js +1 -1
  182. package/SVF-doxygen/html/html/search/classes_a.js +12 -12
  183. package/SVF-doxygen/html/html/search/classes_b.js +29 -29
  184. package/SVF-doxygen/html/html/search/classes_c.js +6 -6
  185. package/SVF-doxygen/html/html/search/classes_d.js +19 -19
  186. package/SVF-doxygen/html/html/search/classes_e.js +36 -36
  187. package/SVF-doxygen/html/html/search/classes_f.js +25 -25
  188. package/SVF-doxygen/html/html/search/defines_0.js +3 -3
  189. package/SVF-doxygen/html/html/search/defines_1.js +2 -2
  190. package/SVF-doxygen/html/html/search/defines_2.js +30 -30
  191. package/SVF-doxygen/html/html/search/defines_3.js +20 -20
  192. package/SVF-doxygen/html/html/search/defines_4.js +3 -3
  193. package/SVF-doxygen/html/html/search/defines_5.js +4 -4
  194. package/SVF-doxygen/html/html/search/defines_6.js +2 -2
  195. package/SVF-doxygen/html/html/search/defines_7.js +5 -5
  196. package/SVF-doxygen/html/html/search/defines_8.js +13 -13
  197. package/SVF-doxygen/html/html/search/defines_9.js +9 -9
  198. package/SVF-doxygen/html/html/search/defines_a.js +2 -2
  199. package/SVF-doxygen/html/html/search/defines_b.js +1 -2
  200. package/SVF-doxygen/html/html/search/defines_c.js +2 -2
  201. package/SVF-doxygen/html/html/search/defines_d.js +2 -6
  202. package/SVF-doxygen/html/html/search/defines_e.js +6 -3
  203. package/SVF-doxygen/html/html/search/defines_f.html +6 -2
  204. package/SVF-doxygen/html/html/search/defines_f.js +3 -26
  205. package/SVF-doxygen/html/html/search/enums_0.js +3 -3
  206. package/SVF-doxygen/html/html/search/enums_1.js +2 -1
  207. package/SVF-doxygen/html/html/search/enums_10.js +1 -1
  208. package/SVF-doxygen/html/html/search/enums_11.js +1 -1
  209. package/SVF-doxygen/html/html/search/enums_2.js +8 -8
  210. package/SVF-doxygen/html/html/search/enums_3.js +1 -1
  211. package/SVF-doxygen/html/html/search/enums_4.js +4 -4
  212. package/SVF-doxygen/html/html/search/enums_5.js +1 -1
  213. package/SVF-doxygen/html/html/search/enums_6.js +2 -2
  214. package/SVF-doxygen/html/html/search/enums_7.js +2 -2
  215. package/SVF-doxygen/html/html/search/enums_8.js +4 -4
  216. package/SVF-doxygen/html/html/search/enums_9.js +1 -1
  217. package/SVF-doxygen/html/html/search/enums_a.js +2 -2
  218. package/SVF-doxygen/html/html/search/enums_b.js +7 -7
  219. package/SVF-doxygen/html/html/search/enums_c.js +1 -1
  220. package/SVF-doxygen/html/html/search/enums_d.js +4 -4
  221. package/SVF-doxygen/html/html/search/enums_e.js +2 -2
  222. package/SVF-doxygen/html/html/search/enums_f.js +4 -4
  223. package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
  224. package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -13
  225. package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
  226. package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
  227. package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
  228. package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
  229. package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
  230. package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
  231. package/SVF-doxygen/html/html/search/enumvalues_2.js +40 -40
  232. package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
  233. package/SVF-doxygen/html/html/search/enumvalues_4.js +34 -34
  234. package/SVF-doxygen/html/html/search/enumvalues_5.js +48 -48
  235. package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
  236. package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
  237. package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
  238. package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
  239. package/SVF-doxygen/html/html/search/enumvalues_a.js +17 -17
  240. package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
  241. package/SVF-doxygen/html/html/search/enumvalues_c.js +6 -6
  242. package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -17
  243. package/SVF-doxygen/html/html/search/enumvalues_e.js +11 -11
  244. package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
  245. package/SVF-doxygen/html/html/search/files_0.js +13 -13
  246. package/SVF-doxygen/html/html/search/files_1.js +7 -7
  247. package/SVF-doxygen/html/html/search/files_10.js +8 -8
  248. package/SVF-doxygen/html/html/search/files_11.js +8 -8
  249. package/SVF-doxygen/html/html/search/files_12.js +2 -2
  250. package/SVF-doxygen/html/html/search/files_2.js +49 -50
  251. package/SVF-doxygen/html/html/search/files_3.js +14 -14
  252. package/SVF-doxygen/html/html/search/files_4.js +4 -4
  253. package/SVF-doxygen/html/html/search/files_5.js +13 -13
  254. package/SVF-doxygen/html/html/search/files_6.js +9 -9
  255. package/SVF-doxygen/html/html/search/files_7.js +14 -14
  256. package/SVF-doxygen/html/html/search/files_8.js +13 -13
  257. package/SVF-doxygen/html/html/search/files_9.js +18 -18
  258. package/SVF-doxygen/html/html/search/files_a.js +3 -3
  259. package/SVF-doxygen/html/html/search/files_b.js +2 -2
  260. package/SVF-doxygen/html/html/search/files_c.js +20 -19
  261. package/SVF-doxygen/html/html/search/files_d.js +4 -4
  262. package/SVF-doxygen/html/html/search/files_e.js +62 -62
  263. package/SVF-doxygen/html/html/search/files_f.js +8 -8
  264. package/SVF-doxygen/html/html/search/functions_0.js +351 -351
  265. package/SVF-doxygen/html/html/search/functions_1.js +81 -80
  266. package/SVF-doxygen/html/html/search/functions_10.js +121 -121
  267. package/SVF-doxygen/html/html/search/functions_11.js +281 -281
  268. package/SVF-doxygen/html/html/search/functions_12.js +55 -55
  269. package/SVF-doxygen/html/html/search/functions_13.js +38 -38
  270. package/SVF-doxygen/html/html/search/functions_14.js +71 -71
  271. package/SVF-doxygen/html/html/search/functions_15.js +29 -29
  272. package/SVF-doxygen/html/html/search/functions_16.js +2 -2
  273. package/SVF-doxygen/html/html/search/functions_17.js +169 -169
  274. package/SVF-doxygen/html/html/search/functions_2.js +251 -251
  275. package/SVF-doxygen/html/html/search/functions_3.js +71 -71
  276. package/SVF-doxygen/html/html/search/functions_4.js +55 -55
  277. package/SVF-doxygen/html/html/search/functions_5.js +55 -55
  278. package/SVF-doxygen/html/html/search/functions_6.js +832 -832
  279. package/SVF-doxygen/html/html/search/functions_7.js +144 -144
  280. package/SVF-doxygen/html/html/search/functions_8.js +417 -417
  281. package/SVF-doxygen/html/html/search/functions_9.js +29 -29
  282. package/SVF-doxygen/html/html/search/functions_a.js +2 -2
  283. package/SVF-doxygen/html/html/search/functions_b.js +23 -23
  284. package/SVF-doxygen/html/html/search/functions_c.js +75 -75
  285. package/SVF-doxygen/html/html/search/functions_d.js +35 -35
  286. package/SVF-doxygen/html/html/search/functions_e.js +56 -56
  287. package/SVF-doxygen/html/html/search/functions_f.js +143 -143
  288. package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
  289. package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
  290. package/SVF-doxygen/html/html/search/related_0.js +2 -2
  291. package/SVF-doxygen/html/html/search/related_1.js +1 -1
  292. package/SVF-doxygen/html/html/search/related_2.js +2 -2
  293. package/SVF-doxygen/html/html/search/related_3.js +2 -2
  294. package/SVF-doxygen/html/html/search/related_4.js +2 -2
  295. package/SVF-doxygen/html/html/search/related_5.js +1 -1
  296. package/SVF-doxygen/html/html/search/related_6.js +2 -2
  297. package/SVF-doxygen/html/html/search/related_7.js +4 -4
  298. package/SVF-doxygen/html/html/search/related_8.js +2 -2
  299. package/SVF-doxygen/html/html/search/related_9.js +4 -4
  300. package/SVF-doxygen/html/html/search/related_a.js +19 -19
  301. package/SVF-doxygen/html/html/search/related_b.js +4 -4
  302. package/SVF-doxygen/html/html/search/related_c.js +1 -1
  303. package/SVF-doxygen/html/html/search/related_d.js +11 -11
  304. package/SVF-doxygen/html/html/search/related_e.js +2 -2
  305. package/SVF-doxygen/html/html/search/related_f.js +2 -2
  306. package/SVF-doxygen/html/html/search/searchdata.js +1 -1
  307. package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
  308. package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
  309. package/SVF-doxygen/html/html/search/typedefs_10.js +60 -60
  310. package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
  311. package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
  312. package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
  313. package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
  314. package/SVF-doxygen/html/html/search/typedefs_2.js +126 -126
  315. package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
  316. package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
  317. package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
  318. package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
  319. package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
  320. package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
  321. package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
  322. package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
  323. package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
  324. package/SVF-doxygen/html/html/search/typedefs_c.js +40 -40
  325. package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
  326. package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
  327. package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
  328. package/SVF-doxygen/html/html/search/variables_0.js +147 -146
  329. package/SVF-doxygen/html/html/search/variables_1.js +74 -74
  330. package/SVF-doxygen/html/html/search/variables_10.js +97 -97
  331. package/SVF-doxygen/html/html/search/variables_11.js +46 -46
  332. package/SVF-doxygen/html/html/search/variables_12.js +93 -93
  333. package/SVF-doxygen/html/html/search/variables_13.js +77 -77
  334. package/SVF-doxygen/html/html/search/variables_14.js +14 -14
  335. package/SVF-doxygen/html/html/search/variables_15.js +48 -48
  336. package/SVF-doxygen/html/html/search/variables_16.js +9 -9
  337. package/SVF-doxygen/html/html/search/variables_17.js +1 -1
  338. package/SVF-doxygen/html/html/search/variables_18.js +2 -2
  339. package/SVF-doxygen/html/html/search/variables_2.js +35 -35
  340. package/SVF-doxygen/html/html/search/variables_3.js +148 -148
  341. package/SVF-doxygen/html/html/search/variables_4.js +56 -56
  342. package/SVF-doxygen/html/html/search/variables_5.js +40 -40
  343. package/SVF-doxygen/html/html/search/variables_6.js +67 -67
  344. package/SVF-doxygen/html/html/search/variables_7.js +33 -33
  345. package/SVF-doxygen/html/html/search/variables_8.js +7 -7
  346. package/SVF-doxygen/html/html/search/variables_9.js +77 -77
  347. package/SVF-doxygen/html/html/search/variables_a.js +4 -4
  348. package/SVF-doxygen/html/html/search/variables_b.js +10 -10
  349. package/SVF-doxygen/html/html/search/variables_c.js +45 -45
  350. package/SVF-doxygen/html/html/search/variables_d.js +56 -56
  351. package/SVF-doxygen/html/html/search/variables_e.js +123 -123
  352. package/SVF-doxygen/html/html/search/variables_f.js +33 -33
  353. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +25 -25
  354. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1SymbolVectorHash.html +4 -4
  355. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1BoundedZ3Expr_01_4.html +5 -5
  356. package/package.json +1 -1
  357. package/svf/include/AbstractExecution/BoundedZ3Expr.h +8 -12
  358. package/svf/include/CFL/CFGNormalizer.h +11 -11
  359. package/svf/include/CFL/{CFLGrammar.h → CFGrammar.h} +5 -5
  360. package/svf/include/CFL/CFLAlias.h +2 -2
  361. package/svf/include/CFL/CFLBase.h +2 -2
  362. package/svf/include/CFL/CFLGramGraphChecker.h +1 -1
  363. package/svf/include/CFL/CFLGraphBuilder.h +30 -81
  364. package/svf/include/CFL/CFLSolver.h +8 -8
  365. package/svf/include/CFL/GrammarBuilder.h +1 -1
  366. package/svf/include/Graphs/CFLGraph.h +3 -3
  367. package/svf/lib/CFL/CFGNormalizer.cpp +11 -11
  368. package/svf/lib/CFL/{CFLGrammar.cpp → CFGrammar.cpp} +7 -7
  369. package/svf/lib/CFL/CFLBase.cpp +5 -11
  370. package/svf/lib/CFL/CFLGraphBuilder.cpp +125 -74
  371. package/svf/lib/CFL/CFLVF.cpp +2 -2
  372. /package/svf/include/CFL/{CFLGrammar.txt → grammar/PAGGrammar.txt} +0 -0
  373. /package/svf/include/CFL/{PEGGrammar.txt → grammar/PEGGrammar.txt} +0 -0
  374. /package/svf/include/CFL/{VFG.txt → grammar/VFGGrammar.txt} +0 -0
@@ -30,37 +30,43 @@
30
30
  #ifndef INCLUDE_CFL_CFLGRAPHBUILDER_H_
31
31
  #define INCLUDE_CFL_CFLGRAPHBUILDER_H_
32
32
 
33
- #include "CFL/CFLGrammar.h"
33
+ #include "CFL/CFGrammar.h"
34
34
  #include "Graphs/CFLGraph.h"
35
35
  #include "Graphs/SVFG.h"
36
36
 
37
37
  namespace SVF
38
38
  {
39
39
 
40
+ enum class BuildDirection
41
+ {
42
+ plain,
43
+ bidirection,
44
+ };
45
+
40
46
  /**
41
47
  * CFLGraphBuilder class is responsible for building CFL (Context-Free Language) graphs
42
- * from text files or dot files or from memory graph.
48
+ * from text files, dot files, json file or from memory graph.
43
49
  */
44
50
  class CFLGraphBuilder
45
51
  {
46
52
  protected:
47
- /// Define Kind(Not contain attribute) and Symbol(May contain attribute) as types derived from CFLGrammar
53
+ /// Define Kind(Not contain attribute) and Symbol(May contain attribute) as types derived from CFGrammar
48
54
  /// to numerically represent label
49
- typedef CFLGrammar::Kind Kind;
50
- typedef CFLGrammar::Symbol Symbol;
55
+ typedef CFGrammar::Kind Kind;
56
+ typedef CFGrammar::Symbol Symbol;
51
57
 
52
58
  /// Maps to maintain mapping between labels and kinds
53
59
  Map<std::string, Kind> labelToKindMap;
54
60
  Map<Kind, std::string> kindToLabelMap;
55
61
 
56
62
  /// Map to maintain attributes associated with each kind
57
- Map<CFLGrammar::Kind, Set<CFLGrammar::Attribute>> kindToAttrsMap;
63
+ Map<CFGrammar::Kind, Set<CFGrammar::Attribute>> kindToAttrsMap;
58
64
 
59
65
  Kind current;
60
66
  CFLGraph *cflGraph;
61
67
 
62
68
  /// Method to add an attribute to a specific kind
63
- void addAttribute(CFLGrammar::Kind kind, CFLGrammar::Attribute attribute);
69
+ void addAttribute(CFGrammar::Kind kind, CFGrammar::Attribute attribute);
64
70
 
65
71
  /// build label and kind connect from the grammar
66
72
  void buildlabelToKindMap(GrammarBase *grammar);
@@ -68,80 +74,23 @@ protected:
68
74
  /// add src and dst node from file
69
75
  CFLNode* addGNode(u32_t NodeID);
70
76
 
77
+ /// Method to build a CFL graph from a Text file
78
+ CFLGraph* buildFromText(std::string fileName, GrammarBase *grammar, BuildDirection direction = BuildDirection::plain);
79
+
80
+ /// Method to build a CFL graph from a Dot file
81
+ CFLGraph *buildFromDot(std::string filename, GrammarBase *grammar, BuildDirection direction = BuildDirection::plain);
82
+
83
+ /// Method to build a CFL graph from a Json file
84
+ CFLGraph *buildFromJson(std::string filename, GrammarBase *grammar, BuildDirection direction = BuildDirection::plain);
85
+
71
86
  public:
72
87
  /// Method to build a CFL graph by copying nodes and edges from any graph
73
88
  /// inherited from GenericGraph
74
89
  template<class N, class E>
75
- void build(GenericGraph<N,E>* graph, CFLGraph* cflGraph)
76
- {
77
- for(auto it = graph->begin(); it!= graph->end(); it++)
78
- {
79
- CFLNode* node = new CFLNode((*it).first);
80
- cflGraph->addCFLNode((*it).first, node);
81
- }
82
- for(auto it = graph->begin(); it!= graph->end(); it++)
83
- {
84
- N* node = (*it).second;
85
- for(E* edge : node->getOutEdges())
86
- {
87
- cflGraph->addCFLEdge(cflGraph->getGNode(edge->getSrcID()), cflGraph->getGNode(edge->getDstID()), edge->getEdgeKind());
88
- }
89
- }
90
- }
91
-
92
- /// Method to build a bidirectional CFL graph by copying nodes and edges
93
- /// from any graph inherited from GenericGraph
94
- template<class N, class E>
95
- CFLGraph* buildBigraph(GenericGraph<N,E>* graph, Kind startKind, GrammarBase *grammar)
96
- {
97
- CFLGraph *cflGraph = new CFLGraph(startKind);
98
- for(auto pairV : grammar->getTerminals())
99
- {
100
- if(labelToKindMap.find(pairV.first) == labelToKindMap.end())
101
- {
102
- labelToKindMap.insert(pairV);
103
- }
104
- if(kindToLabelMap.find(pairV.second) == kindToLabelMap.end())
105
- {
106
- kindToLabelMap.insert(make_pair(pairV.second, pairV.first));
107
- }
108
- }
109
- for(auto pairV : grammar->getNonterminals())
110
- {
111
- if(labelToKindMap.find(pairV.first) == labelToKindMap.end())
112
- {
113
- labelToKindMap.insert(pairV);
114
- }
115
- if(kindToLabelMap.find(pairV.second) == kindToLabelMap.end())
116
- {
117
- kindToLabelMap.insert(make_pair(pairV.second, pairV.first));
118
- }
119
- }
120
- for(auto it = graph->begin(); it!= graph->end(); it++)
121
- {
122
- CFLNode* node = new CFLNode((*it).first);
123
- cflGraph->addCFLNode((*it).first, node);
124
- }
125
- for(auto it = graph->begin(); it!= graph->end(); it++)
126
- {
127
- N* node = (*it).second;
128
- for(E* edge : node->getOutEdges())
129
- {
130
- CFLGrammar::Kind edgeLabel = edge->getEdgeKind();
131
- cflGraph->addCFLEdge(cflGraph->getGNode(edge->getSrcID()), cflGraph->getGNode(edge->getDstID()), edgeLabel);
132
- std::string key = kindToLabelMap[edge->getEdgeKind()];
133
- key.append("bar");
134
- cflGraph->addCFLEdge(cflGraph->getGNode(edge->getDstID()), cflGraph->getGNode(edge->getSrcID()), labelToKindMap[key]);
135
- }
136
- }
137
- return cflGraph;
138
- }
139
-
140
- /// Method to build a CFL graph from a Dot file
141
- CFLGraph *buildFromDot(std::string filename, GrammarBase *grammar);
90
+ CFLGraph* build(GenericGraph<N,E>* graph, GrammarBase *grammar, BuildDirection direction = BuildDirection::plain);
142
91
 
143
- /// Method to build a CFL graph from a Text file
144
- CFLGraph* buildFromTextFile(std::string fileName, GrammarBase *grammar);
92
+ /// Method to build a CFL graph from external file
93
+ CFLGraph* build(std::string fileName, GrammarBase *grammar, BuildDirection direction = BuildDirection::plain);
145
94
 
146
95
  /// @{
147
96
  /// Getter methods for accessing class variables
@@ -159,7 +108,7 @@ public:
159
108
  }
160
109
 
161
110
  /// Returns a reference to the map that associates Kinds with their corresponding attributes
162
- Map<CFLGrammar::Kind, Set<CFLGrammar::Attribute>>& getKindToAttrsMap()
111
+ Map<CFGrammar::Kind, Set<CFGrammar::Attribute>>& getKindToAttrsMap()
163
112
  {
164
113
  return this->kindToAttrsMap;
165
114
  }
@@ -183,10 +132,10 @@ private:
183
132
  void connectVGep(CFLGraph *cflGraph, ConstraintGraph *graph, ConstraintNode *src, ConstraintNode *dst, u32_t level, SVFIR* pag);
184
133
 
185
134
  /// Handles edges, with the exception of the GEP
186
- void addBiCFLEdge(CFLGraph *cflGraph, ConstraintNode* src, ConstraintNode* dst, CFLGrammar::Kind label);
135
+ void addBiCFLEdge(CFLGraph *cflGraph, ConstraintNode* src, ConstraintNode* dst, CFGrammar::Kind label);
187
136
 
188
137
  /// Adds bidirectional GEP edges with attributes
189
- void addBiGepCFLEdge(CFLGraph *cflGraph, ConstraintNode* src, ConstraintNode* dst, CFLGrammar::Attribute attri);
138
+ void addBiGepCFLEdge(CFLGraph *cflGraph, ConstraintNode* src, ConstraintNode* dst, CFGrammar::Attribute attri);
190
139
  };
191
140
 
192
141
  /// VFCFLGraphBuilder: a CFLGraphBuilder specialized for handling value-flow
@@ -205,10 +154,10 @@ private:
205
154
  void connectVGep(CFLGraph *cflGraph, ConstraintGraph *graph, ConstraintNode *src, ConstraintNode *dst, u32_t level, SVFIR* pag);
206
155
 
207
156
  /// Handles edges, with the exception of the GEP
208
- void addBiCFLEdge(CFLGraph *cflGraph, ConstraintNode* src, ConstraintNode* dst, CFLGrammar::Kind label);
157
+ void addBiCFLEdge(CFLGraph *cflGraph, ConstraintNode* src, ConstraintNode* dst, CFGrammar::Kind label);
209
158
 
210
159
  /// Adds bidirectional GEP edges with attributes
211
- void addBiGepCFLEdge(CFLGraph *cflGraph, ConstraintNode* src, ConstraintNode* dst, CFLGrammar::Attribute attri);
160
+ void addBiGepCFLEdge(CFLGraph *cflGraph, ConstraintNode* src, ConstraintNode* dst, CFGrammar::Attribute attri);
212
161
  };
213
162
 
214
163
 
@@ -31,7 +31,7 @@
31
31
  #define INCLUDE_CFL_CFLSolver_H_
32
32
 
33
33
  #include "Graphs/CFLGraph.h"
34
- #include "CFL/CFLGrammar.h"
34
+ #include "CFL/CFGrammar.h"
35
35
  #include "Util/WorkList.h"
36
36
 
37
37
  using namespace std;
@@ -46,12 +46,12 @@ class CFLSolver
46
46
  public:
47
47
  /// Define worklist
48
48
  typedef FIFOWorkList<const CFLEdge*> WorkList;
49
- typedef CFLGrammar::Production Production;
50
- typedef CFLGrammar::Symbol Symbol;
49
+ typedef CFGrammar::Production Production;
50
+ typedef CFGrammar::Symbol Symbol;
51
51
 
52
52
  static double numOfChecks;
53
53
 
54
- CFLSolver(CFLGraph* _graph, CFLGrammar* _grammar): graph(_graph), grammar(_grammar)
54
+ CFLSolver(CFLGraph* _graph, CFGrammar* _grammar): graph(_graph), grammar(_grammar)
55
55
  {
56
56
  }
57
57
 
@@ -77,7 +77,7 @@ public:
77
77
  }
78
78
 
79
79
  /// Return CFL Grammar
80
- inline const CFLGrammar* getGrammar() const
80
+ inline const CFGrammar* getGrammar() const
81
81
  {
82
82
  return grammar;
83
83
  }
@@ -106,7 +106,7 @@ protected:
106
106
 
107
107
  protected:
108
108
  CFLGraph* graph;
109
- CFLGrammar* grammar;
109
+ CFGrammar* grammar;
110
110
  /// Worklist for resolution
111
111
  WorkList worklist;
112
112
 
@@ -266,7 +266,7 @@ public:
266
266
  }
267
267
  //@}
268
268
 
269
- POCRSolver(CFLGraph* _graph, CFLGrammar* _grammar) : CFLSolver(_graph, _grammar)
269
+ POCRSolver(CFLGraph* _graph, CFGrammar* _grammar) : CFLSolver(_graph, _grammar)
270
270
  {
271
271
  buildCFLData();
272
272
  }
@@ -344,7 +344,7 @@ public:
344
344
  void meld_h(NodeID x, TreeNode* uNode, TreeNode* vNode);
345
345
  //@}
346
346
  public:
347
- POCRHybridSolver(CFLGraph* _graph, CFLGrammar* _grammar) : POCRSolver(_graph, _grammar)
347
+ POCRHybridSolver(CFLGraph* _graph, CFGrammar* _grammar) : POCRSolver(_graph, _grammar)
348
348
  {
349
349
  }
350
350
  /// Destructor
@@ -30,7 +30,7 @@
30
30
  #ifndef INCLUDE_CFL_GRAMMARBUILDER_H_
31
31
  #define INCLUDE_CFL_GRAMMARBUILDER_H_
32
32
 
33
- #include "CFL/CFLGrammar.h"
33
+ #include "CFL/CFGrammar.h"
34
34
 
35
35
  namespace SVF
36
36
  {
@@ -34,7 +34,7 @@
34
34
  #include <iostream>
35
35
  #include <string>
36
36
  #include <regex>
37
- #include "CFL/CFLGrammar.h"
37
+ #include "CFL/CFGrammar.h"
38
38
  #include "Graphs/GenericGraph.h"
39
39
  #include "Graphs/ConsG.h"
40
40
 
@@ -155,8 +155,8 @@ typedef GenericGraph<CFLNode,CFLEdge> GenericCFLGraphTy;
155
155
  class CFLGraph: public GenericCFLGraphTy
156
156
  {
157
157
  public:
158
- typedef CFLGrammar::Symbol Symbol;
159
- typedef CFLGrammar::Kind Kind;
158
+ typedef CFGrammar::Symbol Symbol;
159
+ typedef CFGrammar::Kind Kind;
160
160
  typedef GenericNode<CFLNode,CFLEdge>::GEdgeSetTy CFLEdgeSet;
161
161
  Kind startKind;
162
162
 
@@ -39,9 +39,9 @@
39
39
 
40
40
  using namespace SVF;
41
41
 
42
- CFLGrammar* CFGNormalizer::normalize(GrammarBase *generalGrammar)
42
+ CFGrammar* CFGNormalizer::normalize(GrammarBase *generalGrammar)
43
43
  {
44
- CFLGrammar *grammar = new CFLGrammar();
44
+ CFGrammar *grammar = new CFGrammar();
45
45
  grammar->setStartKind(generalGrammar->getStartKind());
46
46
  grammar->setTerminals(generalGrammar->getTerminals());
47
47
  grammar->setNonterminals(generalGrammar->getNonterminals());
@@ -59,7 +59,7 @@ CFLGrammar* CFGNormalizer::normalize(GrammarBase *generalGrammar)
59
59
  }
60
60
 
61
61
 
62
- CFLGrammar* CFGNormalizer::fillAttribute(CFLGrammar *grammar, const Map<CFLGrammar::Kind, Set<CFLGrammar::Attribute>>& kindToAttrsMap)
62
+ CFGrammar* CFGNormalizer::fillAttribute(CFGrammar *grammar, const Map<CFGrammar::Kind, Set<CFGrammar::Attribute>>& kindToAttrsMap)
63
63
  {
64
64
  NodeSet nodeSet = {};
65
65
  for (auto pair: kindToAttrsMap)
@@ -89,7 +89,7 @@ CFLGrammar* CFGNormalizer::fillAttribute(CFLGrammar *grammar, const Map<CFLGramm
89
89
  return grammar;
90
90
  }
91
91
 
92
- void CFGNormalizer::ebnf_bin(CFLGrammar *grammar)
92
+ void CFGNormalizer::ebnf_bin(CFGrammar *grammar)
93
93
  {
94
94
  GrammarBase::SymbolMap<GrammarBase::Symbol, GrammarBase::Productions> new_grammar = {};
95
95
  std::string tempStr = "";
@@ -221,7 +221,7 @@ void CFGNormalizer::ebnf_bin(CFLGrammar *grammar)
221
221
  ///and expand to productions set
222
222
  ///e.g Xi -> Y Zi with Xi i = 0, 1, Yi i = 0,2
223
223
  ///Will get {X0 -> Y Z0, X1 -> Y Z1, X2 -> Y Z2}
224
- void CFGNormalizer::getFilledProductions(GrammarBase::Production &prod, const NodeSet& nodeSet, CFLGrammar *grammar, GrammarBase::Productions& normalProds)
224
+ void CFGNormalizer::getFilledProductions(GrammarBase::Production &prod, const NodeSet& nodeSet, CFGrammar *grammar, GrammarBase::Productions& normalProds)
225
225
  {
226
226
  normalProds.clear();
227
227
  CFLFIFOWorkList<GrammarBase::Production> worklist;
@@ -279,7 +279,7 @@ void CFGNormalizer::getFilledProductions(GrammarBase::Production &prod, const No
279
279
  }
280
280
  }
281
281
 
282
- int CFGNormalizer::ebnfBracketMatch(GrammarBase::Production &prod, int i, CFLGrammar *grammar)
282
+ int CFGNormalizer::ebnfBracketMatch(GrammarBase::Production &prod, int i, CFGrammar *grammar)
283
283
  {
284
284
  int index = i;
285
285
  while (index >= 0)
@@ -293,7 +293,7 @@ int CFGNormalizer::ebnfBracketMatch(GrammarBase::Production &prod, int i, CFLGra
293
293
  return 0;
294
294
  }
295
295
 
296
- void CFGNormalizer::barReplace(CFLGrammar *grammar)
296
+ void CFGNormalizer::barReplace(CFGrammar *grammar)
297
297
  {
298
298
  for (auto &symbolToProductionsPair : grammar->getRawProductions())
299
299
  {
@@ -323,7 +323,7 @@ void CFGNormalizer::barReplace(CFLGrammar *grammar)
323
323
  }
324
324
  }
325
325
 
326
- void CFGNormalizer::ebnfSignReplace(char sign, CFLGrammar *grammar)
326
+ void CFGNormalizer::ebnfSignReplace(char sign, CFGrammar *grammar)
327
327
  {
328
328
  /// Replace Sign Group With tempNonterminal 'X'
329
329
  /// And load the replace in newProductions
@@ -435,7 +435,7 @@ void CFGNormalizer::ebnfSignReplace(char sign, CFLGrammar *grammar)
435
435
  }
436
436
  }
437
437
 
438
- void CFGNormalizer::strTrans(std::string LHS, CFLGrammar *grammar, GrammarBase::Production& normalProd)
438
+ void CFGNormalizer::strTrans(std::string LHS, CFGrammar *grammar, GrammarBase::Production& normalProd)
439
439
  {
440
440
  std::smatch matches;
441
441
  std::regex LHSReg("\\s*(.*)");
@@ -471,7 +471,7 @@ GrammarBase::Symbol CFGNormalizer::check_head(GrammarBase::SymbolMap<GrammarBase
471
471
  }
472
472
 
473
473
  /// Based on prod size to add on suitable member field of grammar
474
- void CFGNormalizer::insertToCFLGrammar(CFLGrammar *grammar, GrammarBase::Production &prod)
474
+ void CFGNormalizer::insertToCFLGrammar(CFGrammar *grammar, GrammarBase::Production &prod)
475
475
  {
476
476
  if (prod.size() == 2)
477
477
  {
@@ -494,7 +494,7 @@ void CFGNormalizer::insertToCFLGrammar(CFLGrammar *grammar, GrammarBase::Product
494
494
  }
495
495
  }
496
496
 
497
- void CFGNormalizer::removeFirstSymbol(CFLGrammar *grammar)
497
+ void CFGNormalizer::removeFirstSymbol(CFGrammar *grammar)
498
498
  {
499
499
  // Remove First Terminal
500
500
  for(auto head : grammar->getRawProductions())
@@ -1,4 +1,4 @@
1
- //===----- CFLGrammar.cpp -- Context-free grammar --------------------------//
1
+ //===----- CFGrammar.cpp -- Context-free grammar --------------------------//
2
2
  //
3
3
  // SVF: Static Value-Flow Analysis
4
4
  //
@@ -21,13 +21,13 @@
21
21
  //===----------------------------------------------------------------------===//
22
22
 
23
23
  /*
24
- * CFLGrammar.cpp
24
+ * CFGrammar.cpp
25
25
  *
26
26
  * Created on: March 5, 2022
27
27
  * Author: Yulei Sui
28
28
  */
29
29
 
30
- #include "CFL/CFLGrammar.h"
30
+ #include "CFL/CFGrammar.h"
31
31
  #include "Util/SVFUtil.h"
32
32
  #include <string>
33
33
  #include <iostream>
@@ -333,22 +333,22 @@ void GrammarBase::insertAttribute(Kind kind, Attribute attribute)
333
333
  }
334
334
  else
335
335
  {
336
- Set<CFLGrammar::Attribute> attrs {attribute};
336
+ Set<CFGrammar::Attribute> attrs {attribute};
337
337
  kindToAttrsMap.insert(make_pair(kind, attrs));
338
338
  }
339
339
  }
340
340
 
341
- CFLGrammar::CFLGrammar()
341
+ CFGrammar::CFGrammar()
342
342
  {
343
343
  newTerminalSubscript = 0;
344
344
  }
345
345
 
346
- void CFLGrammar::dump() const
346
+ void CFGrammar::dump() const
347
347
  {
348
348
  dump("Normailized_Grammar.txt");
349
349
  }
350
350
 
351
- void CFLGrammar::dump(std::string fileName) const
351
+ void CFGrammar::dump(std::string fileName) const
352
352
  {
353
353
  std::ofstream gramFile(fileName);
354
354
  gramFile << "Start Kind:\n";
@@ -50,12 +50,13 @@ void CFLBase::checkParameter()
50
50
  {
51
51
  // Check for valid grammar file before parsing other options
52
52
  std::string filename = Options::GrammarFilename();
53
- bool cflfile = (filename.rfind("CFLGrammar.txt") == filename.length() - std::string("CFLGrammar.txt").length());
53
+ bool pagfile = (filename.rfind("PAGGrammar.txt") == filename.length() - std::string("PAGGrammar.txt").length());
54
54
  bool pegfile = (filename.rfind("PEGGrammar.txt") == filename.length() - std::string("PEGGrammar.txt").length());
55
- if (!Options::Customized() && !(cflfile || pegfile))
55
+ bool vfgfile = (filename.rfind("VFGGrammar.txt") == filename.length() - std::string("VFGGrammar.txt").length());
56
+ if (!Options::Customized() && !(pagfile || pegfile || vfgfile))
56
57
  {
57
58
  SVFUtil::errs() << "Invalid alias grammar file: " << Options::GrammarFilename() << "\n"
58
- << "Please use a file that ends with either 'CFLGrammar.txt' or 'PEGGrammar.txt', "
59
+ << "Please use a file that ends with either 'CFGrammar.txt' or 'PEGGrammar.txt', "
59
60
  << "or use the -customized flag to allow custom grammar files.\n";
60
61
  assert(false && "grammar loading failed!"); // exit with error
61
62
  }
@@ -91,14 +92,7 @@ void CFLBase::buildCFLGraph()
91
92
  delete consCG;
92
93
  }
93
94
  else
94
- {
95
- std::string fileName = Options::CFLGraph();
96
- bool dotfile = (fileName.rfind(".dot") == fileName.length() - std::string("dot").length());
97
- if (dotfile)
98
- graph = cflGraphBuilder.buildFromDot(Options::CFLGraph(), grammarBase);
99
- else
100
- graph = cflGraphBuilder.buildFromTextFile(Options::CFLGraph(), grammarBase);
101
- }
95
+ graph = cflGraphBuilder.build(Options::CFLGraph(), grammarBase);
102
96
  // Check CFL Graph and Grammar are accordance with grammar
103
97
  CFLGramGraphChecker cflChecker = CFLGramGraphChecker();
104
98
  cflChecker.check(grammarBase, &cflGraphBuilder, graph);