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.
- package/SVF-doxygen/html/html/BoundedZ3Expr_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/BoundedZ3Expr_8h.html +24 -1
- package/SVF-doxygen/html/html/BoundedZ3Expr_8h_source.html +373 -376
- package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +76 -76
- package/SVF-doxygen/html/html/CFGNormalizer_8h.html +1 -1
- package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +29 -29
- package/SVF-doxygen/html/html/CFGrammar_8cpp.html +88 -0
- package/SVF-doxygen/html/html/CFGrammar_8cpp_source.html +568 -0
- package/SVF-doxygen/html/html/CFGrammar_8h.html +108 -0
- package/SVF-doxygen/html/html/CFGrammar_8h_source.html +643 -0
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +5 -5
- package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +120 -127
- package/SVF-doxygen/html/html/CFLBase_8h_source.html +14 -14
- package/SVF-doxygen/html/html/CFLGramGraphChecker_8h.html +1 -1
- package/SVF-doxygen/html/html/CFLGramGraphChecker_8h_source.html +12 -12
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +464 -409
- package/SVF-doxygen/html/html/CFLGraphBuilder_8h.html +10 -2
- package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +120 -175
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CFLGraph_8h.html +1 -1
- package/SVF-doxygen/html/html/CFLGraph_8h_source.html +11 -11
- package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +60 -60
- package/SVF-doxygen/html/html/CFLSolver_8h.html +1 -1
- package/SVF-doxygen/html/html/CFLSolver_8h_source.html +19 -19
- package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ConsExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/GrammarBuilder_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/GrammarBuilder_8h.html +1 -1
- package/SVF-doxygen/html/html/GrammarBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/GraphWriter_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/GraphWriter_8h_source.html +1 -1
- package/SVF-doxygen/html/html/NumericLiteral_8h_source.html +12 -12
- package/SVF-doxygen/html/html/PAGGrammar_8txt.html +209 -0
- package/SVF-doxygen/html/html/PEGGrammar_8txt.html +11 -11
- package/SVF-doxygen/html/html/SingleAbsValue_8h_source.html +4 -4
- package/SVF-doxygen/html/html/VFGGrammar_8txt.html +119 -0
- package/SVF-doxygen/html/html/annotated.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder-members.html +21 -20
- package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +223 -220
- package/SVF-doxygen/html/html/classSVF_1_1BoundedZ3Expr.html +291 -296
- package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer-members.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +119 -119
- package/SVF-doxygen/html/html/classSVF_1_1CFGrammar-members.html +158 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFGrammar.html +1051 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFGrammar.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +108 -114
- package/SVF-doxygen/html/html/classSVF_1_1CFLFIFOWorkList.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder-members.html +17 -16
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +333 -280
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +56 -56
- package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1ConsExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +76 -76
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1POCRHybrid-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1POCRHybrid.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1POCRHybridSolver-members.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1POCRHybridSolver.html +53 -53
- package/SVF-doxygen/html/html/classSVF_1_1POCRSolver-members.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.html +47 -47
- package/SVF-doxygen/html/html/classSVF_1_1SingleAbsValue.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder-members.html +21 -20
- package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder.html +148 -145
- package/SVF-doxygen/html/html/classes.html +6 -6
- package/SVF-doxygen/html/html/dir_1b8e404556d3e8597ae60437f0a084bf.html +7 -2
- package/SVF-doxygen/html/html/dir_7de7f3d0ab1cbd78bc64b135e4cd18be.html +80 -0
- package/SVF-doxygen/html/html/dir_8a9c8659eb68b9cbd3fead4690588a47.html +2 -2
- package/SVF-doxygen/html/html/files.html +14 -13
- package/SVF-doxygen/html/html/functions_a.html +5 -5
- package/SVF-doxygen/html/html/functions_b.html +9 -7
- package/SVF-doxygen/html/html/functions_c.html +5 -5
- package/SVF-doxygen/html/html/functions_d.html +1 -1
- package/SVF-doxygen/html/html/functions_e.html +4 -4
- package/SVF-doxygen/html/html/functions_f.html +2 -2
- package/SVF-doxygen/html/html/functions_func.html +5 -5
- package/SVF-doxygen/html/html/functions_func_b.html +9 -7
- package/SVF-doxygen/html/html/functions_func_c.html +5 -5
- package/SVF-doxygen/html/html/functions_func_d.html +1 -1
- package/SVF-doxygen/html/html/functions_func_e.html +3 -3
- package/SVF-doxygen/html/html/functions_func_f.html +1 -1
- package/SVF-doxygen/html/html/functions_func_g.html +13 -13
- package/SVF-doxygen/html/html/functions_func_h.html +3 -3
- package/SVF-doxygen/html/html/functions_func_i.html +1 -1
- package/SVF-doxygen/html/html/functions_func_n.html +2 -2
- package/SVF-doxygen/html/html/functions_func_p.html +2 -2
- package/SVF-doxygen/html/html/functions_func_r.html +1 -1
- package/SVF-doxygen/html/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/html/functions_g.html +15 -15
- package/SVF-doxygen/html/html/functions_h.html +3 -3
- package/SVF-doxygen/html/html/functions_i.html +2 -2
- package/SVF-doxygen/html/html/functions_k.html +3 -3
- package/SVF-doxygen/html/html/functions_l.html +5 -5
- package/SVF-doxygen/html/html/functions_n.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +13 -13
- package/SVF-doxygen/html/html/functions_p.html +16 -12
- package/SVF-doxygen/html/html/functions_r.html +1 -1
- package/SVF-doxygen/html/html/functions_s.html +17 -19
- package/SVF-doxygen/html/html/functions_t.html +3 -3
- package/SVF-doxygen/html/html/functions_type_k.html +2 -2
- package/SVF-doxygen/html/html/functions_type_p.html +1 -1
- package/SVF-doxygen/html/html/functions_type_s.html +3 -3
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_vars_e.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_g.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_k.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_n.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_s.html +2 -2
- package/SVF-doxygen/html/html/functions_w.html +9 -9
- package/SVF-doxygen/html/html/globals.html +6 -4
- package/SVF-doxygen/html/html/globals_defs.html +7 -0
- package/SVF-doxygen/html/html/globals_e.html +1 -1
- package/SVF-doxygen/html/html/globals_g.html +3 -3
- package/SVF-doxygen/html/html/globals_m.html +4 -1
- package/SVF-doxygen/html/html/globals_s.html +1 -1
- package/SVF-doxygen/html/html/globals_v.html +2 -2
- package/SVF-doxygen/html/html/globals_vars.html +12 -10
- package/SVF-doxygen/html/html/hierarchy.html +1 -1
- package/SVF-doxygen/html/html/menudata.js +1 -0
- package/SVF-doxygen/html/html/namespaceSVF.html +40 -2
- package/SVF-doxygen/html/html/namespacemembers_b.html +3 -0
- package/SVF-doxygen/html/html/namespacemembers_enum.html +3 -0
- package/SVF-doxygen/html/html/search/all_0.js +147 -146
- package/SVF-doxygen/html/html/search/all_1.js +478 -478
- package/SVF-doxygen/html/html/search/all_10.js +327 -325
- package/SVF-doxygen/html/html/search/all_11.js +208 -208
- package/SVF-doxygen/html/html/search/all_12.js +545 -545
- package/SVF-doxygen/html/html/search/all_13.js +189 -189
- package/SVF-doxygen/html/html/search/all_14.js +66 -66
- package/SVF-doxygen/html/html/search/all_15.js +170 -170
- package/SVF-doxygen/html/html/search/all_16.js +60 -60
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/html/search/all_19.js +10 -10
- package/SVF-doxygen/html/html/search/all_1a.js +169 -169
- package/SVF-doxygen/html/html/search/all_2.js +159 -156
- package/SVF-doxygen/html/html/search/all_3.js +637 -638
- package/SVF-doxygen/html/html/search/all_4.js +227 -227
- package/SVF-doxygen/html/html/search/all_5.js +156 -156
- package/SVF-doxygen/html/html/search/all_6.js +223 -223
- package/SVF-doxygen/html/html/search/all_7.js +1012 -1012
- package/SVF-doxygen/html/html/search/all_8.js +192 -192
- package/SVF-doxygen/html/html/search/all_9.js +597 -597
- package/SVF-doxygen/html/html/search/all_a.js +47 -47
- package/SVF-doxygen/html/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/html/search/all_c.js +113 -113
- package/SVF-doxygen/html/html/search/all_d.js +196 -196
- package/SVF-doxygen/html/html/search/all_e.js +206 -206
- package/SVF-doxygen/html/html/search/all_f.js +122 -122
- package/SVF-doxygen/html/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/html/search/classes_2.js +76 -76
- package/SVF-doxygen/html/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/html/search/classes_4.js +10 -10
- package/SVF-doxygen/html/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/html/search/classes_6.js +98 -98
- package/SVF-doxygen/html/html/search/classes_7.js +33 -33
- package/SVF-doxygen/html/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/html/search/classes_d.js +19 -19
- package/SVF-doxygen/html/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/html/search/defines_4.js +3 -3
- package/SVF-doxygen/html/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/html/search/defines_8.js +13 -13
- package/SVF-doxygen/html/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/html/search/defines_b.js +1 -2
- package/SVF-doxygen/html/html/search/defines_c.js +2 -2
- package/SVF-doxygen/html/html/search/defines_d.js +2 -6
- package/SVF-doxygen/html/html/search/defines_e.js +6 -3
- package/SVF-doxygen/html/html/search/defines_f.html +6 -2
- package/SVF-doxygen/html/html/search/defines_f.js +3 -26
- package/SVF-doxygen/html/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/html/search/enums_1.js +2 -1
- package/SVF-doxygen/html/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/html/search/enums_4.js +4 -4
- package/SVF-doxygen/html/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/html/search/enums_a.js +2 -2
- package/SVF-doxygen/html/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -13
- package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_2.js +40 -40
- package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/html/search/enumvalues_4.js +34 -34
- package/SVF-doxygen/html/html/search/enumvalues_5.js +48 -48
- package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_a.js +17 -17
- package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/html/search/enumvalues_c.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -17
- package/SVF-doxygen/html/html/search/enumvalues_e.js +11 -11
- package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/html/search/files_2.js +49 -50
- package/SVF-doxygen/html/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/html/search/files_4.js +4 -4
- package/SVF-doxygen/html/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/html/search/files_c.js +20 -19
- package/SVF-doxygen/html/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/html/search/functions_0.js +351 -351
- package/SVF-doxygen/html/html/search/functions_1.js +81 -80
- package/SVF-doxygen/html/html/search/functions_10.js +121 -121
- package/SVF-doxygen/html/html/search/functions_11.js +281 -281
- package/SVF-doxygen/html/html/search/functions_12.js +55 -55
- package/SVF-doxygen/html/html/search/functions_13.js +38 -38
- package/SVF-doxygen/html/html/search/functions_14.js +71 -71
- package/SVF-doxygen/html/html/search/functions_15.js +29 -29
- package/SVF-doxygen/html/html/search/functions_16.js +2 -2
- package/SVF-doxygen/html/html/search/functions_17.js +169 -169
- package/SVF-doxygen/html/html/search/functions_2.js +251 -251
- package/SVF-doxygen/html/html/search/functions_3.js +71 -71
- package/SVF-doxygen/html/html/search/functions_4.js +55 -55
- package/SVF-doxygen/html/html/search/functions_5.js +55 -55
- package/SVF-doxygen/html/html/search/functions_6.js +832 -832
- package/SVF-doxygen/html/html/search/functions_7.js +144 -144
- package/SVF-doxygen/html/html/search/functions_8.js +417 -417
- package/SVF-doxygen/html/html/search/functions_9.js +29 -29
- package/SVF-doxygen/html/html/search/functions_a.js +2 -2
- package/SVF-doxygen/html/html/search/functions_b.js +23 -23
- package/SVF-doxygen/html/html/search/functions_c.js +75 -75
- package/SVF-doxygen/html/html/search/functions_d.js +35 -35
- package/SVF-doxygen/html/html/search/functions_e.js +56 -56
- package/SVF-doxygen/html/html/search/functions_f.js +143 -143
- package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/html/search/related_1.js +1 -1
- package/SVF-doxygen/html/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/html/search/related_c.js +1 -1
- package/SVF-doxygen/html/html/search/related_d.js +11 -11
- package/SVF-doxygen/html/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/html/search/searchdata.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
- package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
- package/SVF-doxygen/html/html/search/typedefs_10.js +60 -60
- package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
- package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/html/search/typedefs_2.js +126 -126
- package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
- package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
- package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_c.js +40 -40
- package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
- package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/html/search/variables_0.js +147 -146
- package/SVF-doxygen/html/html/search/variables_1.js +74 -74
- package/SVF-doxygen/html/html/search/variables_10.js +97 -97
- package/SVF-doxygen/html/html/search/variables_11.js +46 -46
- package/SVF-doxygen/html/html/search/variables_12.js +93 -93
- package/SVF-doxygen/html/html/search/variables_13.js +77 -77
- package/SVF-doxygen/html/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/html/search/variables_2.js +35 -35
- package/SVF-doxygen/html/html/search/variables_3.js +148 -148
- package/SVF-doxygen/html/html/search/variables_4.js +56 -56
- package/SVF-doxygen/html/html/search/variables_5.js +40 -40
- package/SVF-doxygen/html/html/search/variables_6.js +67 -67
- package/SVF-doxygen/html/html/search/variables_7.js +33 -33
- package/SVF-doxygen/html/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/html/search/variables_9.js +77 -77
- package/SVF-doxygen/html/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/html/search/variables_d.js +56 -56
- package/SVF-doxygen/html/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/html/search/variables_f.js +33 -33
- package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +25 -25
- package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1SymbolVectorHash.html +4 -4
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1BoundedZ3Expr_01_4.html +5 -5
- package/package.json +1 -1
- package/svf/include/AbstractExecution/BoundedZ3Expr.h +8 -12
- package/svf/include/CFL/CFGNormalizer.h +11 -11
- package/svf/include/CFL/{CFLGrammar.h → CFGrammar.h} +5 -5
- package/svf/include/CFL/CFLAlias.h +2 -2
- package/svf/include/CFL/CFLBase.h +2 -2
- package/svf/include/CFL/CFLGramGraphChecker.h +1 -1
- package/svf/include/CFL/CFLGraphBuilder.h +30 -81
- package/svf/include/CFL/CFLSolver.h +8 -8
- package/svf/include/CFL/GrammarBuilder.h +1 -1
- package/svf/include/Graphs/CFLGraph.h +3 -3
- package/svf/lib/CFL/CFGNormalizer.cpp +11 -11
- package/svf/lib/CFL/{CFLGrammar.cpp → CFGrammar.cpp} +7 -7
- package/svf/lib/CFL/CFLBase.cpp +5 -11
- package/svf/lib/CFL/CFLGraphBuilder.cpp +125 -74
- package/svf/lib/CFL/CFLVF.cpp +2 -2
- /package/svf/include/CFL/{CFLGrammar.txt → grammar/PAGGrammar.txt} +0 -0
- /package/svf/include/CFL/{PEGGrammar.txt → grammar/PEGGrammar.txt} +0 -0
- /package/svf/include/CFL/{VFG.txt → grammar/VFGGrammar.txt} +0 -0
|
@@ -90,70 +90,73 @@ Inheritance diagram for SVF::CFLGraphBuilder:</div>
|
|
|
90
90
|
<table class="memberdecls">
|
|
91
91
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
92
92
|
Public Member Functions</h2></td></tr>
|
|
93
|
-
<tr class="memitem:
|
|
94
|
-
<tr class="memitem:
|
|
95
|
-
<tr class="separator:
|
|
96
|
-
<tr class="memitem:
|
|
97
|
-
<tr class="
|
|
98
|
-
<tr class="separator:
|
|
99
|
-
<tr class="memitem:a6c9fa25204550dc5bea1cae52a61472b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a6c9fa25204550dc5bea1cae52a61472b">buildFromDot</a> (<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> filename, <a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar)</td></tr>
|
|
100
|
-
<tr class="memdesc:a6c9fa25204550dc5bea1cae52a61472b"><td class="mdescLeft"> </td><td class="mdescRight">Method to build a CFL graph from a Dot file. <a href="classSVF_1_1CFLGraphBuilder.html#a6c9fa25204550dc5bea1cae52a61472b">More...</a><br /></td></tr>
|
|
101
|
-
<tr class="separator:a6c9fa25204550dc5bea1cae52a61472b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
102
|
-
<tr class="memitem:acc19ccb854db14637c97f4ed99810da9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#acc19ccb854db14637c97f4ed99810da9">buildFromTextFile</a> (<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> fileName, <a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar)</td></tr>
|
|
103
|
-
<tr class="memdesc:acc19ccb854db14637c97f4ed99810da9"><td class="mdescLeft"> </td><td class="mdescRight">Method to build a CFL graph from a Text file. <a href="classSVF_1_1CFLGraphBuilder.html#acc19ccb854db14637c97f4ed99810da9">More...</a><br /></td></tr>
|
|
104
|
-
<tr class="separator:acc19ccb854db14637c97f4ed99810da9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
93
|
+
<tr class="memitem:a27b247b46ce0b467459fcc2d53f50383"><td class="memTemplParams" colspan="2">template<class N , class E > </td></tr>
|
|
94
|
+
<tr class="memitem:a27b247b46ce0b467459fcc2d53f50383"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a27b247b46ce0b467459fcc2d53f50383">build</a> (<a class="el" href="classSVF_1_1GenericGraph.html">GenericGraph</a>< N, E > *graph, <a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar, <a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">BuildDirection</a> direction=<a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caaaac7938d40cfc2307e2bf325d28e7884e">BuildDirection::plain</a>)</td></tr>
|
|
95
|
+
<tr class="separator:a27b247b46ce0b467459fcc2d53f50383"><td class="memSeparator" colspan="2"> </td></tr>
|
|
96
|
+
<tr class="memitem:a2e97c964eb1e187a931f17da9672815f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a2e97c964eb1e187a931f17da9672815f">build</a> (<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> fileName, <a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar, <a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">BuildDirection</a> direction=<a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caaaac7938d40cfc2307e2bf325d28e7884e">BuildDirection::plain</a>)</td></tr>
|
|
97
|
+
<tr class="memdesc:a2e97c964eb1e187a931f17da9672815f"><td class="mdescLeft"> </td><td class="mdescRight">Method to build a CFL graph from external file. <a href="classSVF_1_1CFLGraphBuilder.html#a2e97c964eb1e187a931f17da9672815f">More...</a><br /></td></tr>
|
|
98
|
+
<tr class="separator:a2e97c964eb1e187a931f17da9672815f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
105
99
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
106
|
-
<tr class="memitem:a7e564f2fbaf9b92aab3decaf6cba93c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>, <a class="el" href="classSVF_1_1CFLGraphBuilder.html#
|
|
100
|
+
<tr class="memitem:a7e564f2fbaf9b92aab3decaf6cba93c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>, <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">Kind</a> > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a7e564f2fbaf9b92aab3decaf6cba93c3">getLabelToKindMap</a> ()</td></tr>
|
|
107
101
|
<tr class="memdesc:a7e564f2fbaf9b92aab3decaf6cba93c3"><td class="mdescLeft"> </td><td class="mdescRight">Returns a reference to the map that associates string labels with their corresponding Kind. <a href="classSVF_1_1CFLGraphBuilder.html#a7e564f2fbaf9b92aab3decaf6cba93c3">More...</a><br /></td></tr>
|
|
108
102
|
<tr class="separator:a7e564f2fbaf9b92aab3decaf6cba93c3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
109
|
-
<tr class="memitem:a03686822a9dd7d886f3c41ba79f8b481"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="classSVF_1_1CFLGraphBuilder.html#
|
|
103
|
+
<tr class="memitem:a03686822a9dd7d886f3c41ba79f8b481"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">Kind</a>, <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a03686822a9dd7d886f3c41ba79f8b481">getKindToLabelMap</a> ()</td></tr>
|
|
110
104
|
<tr class="memdesc:a03686822a9dd7d886f3c41ba79f8b481"><td class="mdescLeft"> </td><td class="mdescRight">Returns a reference to the map that associates Kinds with their corresponding string labels. <a href="classSVF_1_1CFLGraphBuilder.html#a03686822a9dd7d886f3c41ba79f8b481">More...</a><br /></td></tr>
|
|
111
105
|
<tr class="separator:a03686822a9dd7d886f3c41ba79f8b481"><td class="memSeparator" colspan="2"> </td></tr>
|
|
112
|
-
<tr class="memitem:
|
|
113
|
-
<tr class="memdesc:
|
|
114
|
-
<tr class="separator:
|
|
106
|
+
<tr class="memitem:aa3fb91f78b5d9e2c0eb24e4986a5926c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFGrammar::Kind</a>, <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>< <a class="el" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFGrammar::Attribute</a> > > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#aa3fb91f78b5d9e2c0eb24e4986a5926c">getKindToAttrsMap</a> ()</td></tr>
|
|
107
|
+
<tr class="memdesc:aa3fb91f78b5d9e2c0eb24e4986a5926c"><td class="mdescLeft"> </td><td class="mdescRight">Returns a reference to the map that associates Kinds with their corresponding attributes. <a href="classSVF_1_1CFLGraphBuilder.html#aa3fb91f78b5d9e2c0eb24e4986a5926c">More...</a><br /></td></tr>
|
|
108
|
+
<tr class="separator:aa3fb91f78b5d9e2c0eb24e4986a5926c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
115
109
|
</table><table class="memberdecls">
|
|
116
110
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
|
|
117
111
|
Protected Types</h2></td></tr>
|
|
118
|
-
<tr class="memitem:
|
|
119
|
-
<tr class="separator:
|
|
120
|
-
<tr class="memitem:
|
|
121
|
-
<tr class="separator:
|
|
112
|
+
<tr class="memitem:a41f8cc1264aa99c581e1d6f3150a2d48"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFGrammar::Kind</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">Kind</a></td></tr>
|
|
113
|
+
<tr class="separator:a41f8cc1264aa99c581e1d6f3150a2d48"><td class="memSeparator" colspan="2"> </td></tr>
|
|
114
|
+
<tr class="memitem:a2ab271d42ab82aea2adf8b0e641aa39c"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structSVF_1_1GrammarBase_1_1Symbol.html">CFGrammar::Symbol</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a2ab271d42ab82aea2adf8b0e641aa39c">Symbol</a></td></tr>
|
|
115
|
+
<tr class="separator:a2ab271d42ab82aea2adf8b0e641aa39c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
122
116
|
</table><table class="memberdecls">
|
|
123
117
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
|
|
124
118
|
Protected Member Functions</h2></td></tr>
|
|
125
|
-
<tr class="memitem:
|
|
126
|
-
<tr class="memdesc:
|
|
127
|
-
<tr class="separator:
|
|
119
|
+
<tr class="memitem:af05b577fbb64082d80ca4cfa2e2bc4f1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1">addAttribute</a> (<a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFGrammar::Kind</a> kind, <a class="el" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFGrammar::Attribute</a> attribute)</td></tr>
|
|
120
|
+
<tr class="memdesc:af05b577fbb64082d80ca4cfa2e2bc4f1"><td class="mdescLeft"> </td><td class="mdescRight">Method to add an attribute to a specific kind. <a href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1">More...</a><br /></td></tr>
|
|
121
|
+
<tr class="separator:af05b577fbb64082d80ca4cfa2e2bc4f1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
128
122
|
<tr class="memitem:a01e5d31c43d40f8a518aa8d371b085d8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a01e5d31c43d40f8a518aa8d371b085d8">buildlabelToKindMap</a> (<a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar)</td></tr>
|
|
129
123
|
<tr class="memdesc:a01e5d31c43d40f8a518aa8d371b085d8"><td class="mdescLeft"> </td><td class="mdescRight">build label and kind connect from the grammar <a href="classSVF_1_1CFLGraphBuilder.html#a01e5d31c43d40f8a518aa8d371b085d8">More...</a><br /></td></tr>
|
|
130
124
|
<tr class="separator:a01e5d31c43d40f8a518aa8d371b085d8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
131
125
|
<tr class="memitem:aec30ce1ad7be5ac2e41f73ddba356fd9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLNode.html">CFLNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#aec30ce1ad7be5ac2e41f73ddba356fd9">addGNode</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>)</td></tr>
|
|
132
126
|
<tr class="memdesc:aec30ce1ad7be5ac2e41f73ddba356fd9"><td class="mdescLeft"> </td><td class="mdescRight">add src and dst node from file <a href="classSVF_1_1CFLGraphBuilder.html#aec30ce1ad7be5ac2e41f73ddba356fd9">More...</a><br /></td></tr>
|
|
133
127
|
<tr class="separator:aec30ce1ad7be5ac2e41f73ddba356fd9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
128
|
+
<tr class="memitem:aea046c5f1971069a50100afe7ffed89f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#aea046c5f1971069a50100afe7ffed89f">buildFromText</a> (<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> fileName, <a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar, <a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">BuildDirection</a> direction=<a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caaaac7938d40cfc2307e2bf325d28e7884e">BuildDirection::plain</a>)</td></tr>
|
|
129
|
+
<tr class="memdesc:aea046c5f1971069a50100afe7ffed89f"><td class="mdescLeft"> </td><td class="mdescRight">Method to build a CFL graph from a Text file. <a href="classSVF_1_1CFLGraphBuilder.html#aea046c5f1971069a50100afe7ffed89f">More...</a><br /></td></tr>
|
|
130
|
+
<tr class="separator:aea046c5f1971069a50100afe7ffed89f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
131
|
+
<tr class="memitem:a1e3b5220f536443019ea25262169498a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a1e3b5220f536443019ea25262169498a">buildFromDot</a> (<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> filename, <a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar, <a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">BuildDirection</a> direction=<a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caaaac7938d40cfc2307e2bf325d28e7884e">BuildDirection::plain</a>)</td></tr>
|
|
132
|
+
<tr class="memdesc:a1e3b5220f536443019ea25262169498a"><td class="mdescLeft"> </td><td class="mdescRight">Method to build a CFL graph from a Dot file. <a href="classSVF_1_1CFLGraphBuilder.html#a1e3b5220f536443019ea25262169498a">More...</a><br /></td></tr>
|
|
133
|
+
<tr class="separator:a1e3b5220f536443019ea25262169498a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
134
|
+
<tr class="memitem:aa1a24c858e46b68e9f6a99668d880f6a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#aa1a24c858e46b68e9f6a99668d880f6a">buildFromJson</a> (<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> filename, <a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar, <a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">BuildDirection</a> direction=<a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caaaac7938d40cfc2307e2bf325d28e7884e">BuildDirection::plain</a>)</td></tr>
|
|
135
|
+
<tr class="memdesc:aa1a24c858e46b68e9f6a99668d880f6a"><td class="mdescLeft"> </td><td class="mdescRight">Method to build a CFL graph from a Json file. <a href="classSVF_1_1CFLGraphBuilder.html#aa1a24c858e46b68e9f6a99668d880f6a">More...</a><br /></td></tr>
|
|
136
|
+
<tr class="separator:aa1a24c858e46b68e9f6a99668d880f6a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
134
137
|
</table><table class="memberdecls">
|
|
135
138
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
|
|
136
139
|
Protected Attributes</h2></td></tr>
|
|
137
|
-
<tr class="memitem:a1ecf9cad8707ba07d3e44624ea273f2f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>, <a class="el" href="classSVF_1_1CFLGraphBuilder.html#
|
|
140
|
+
<tr class="memitem:a1ecf9cad8707ba07d3e44624ea273f2f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>, <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">Kind</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a></td></tr>
|
|
138
141
|
<tr class="memdesc:a1ecf9cad8707ba07d3e44624ea273f2f"><td class="mdescLeft"> </td><td class="mdescRight">Maps to maintain mapping between labels and kinds. <a href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">More...</a><br /></td></tr>
|
|
139
142
|
<tr class="separator:a1ecf9cad8707ba07d3e44624ea273f2f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
140
|
-
<tr class="memitem:a93b41c2f0eca82e6eaf49895b2b13a1e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="classSVF_1_1CFLGraphBuilder.html#
|
|
143
|
+
<tr class="memitem:a93b41c2f0eca82e6eaf49895b2b13a1e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">Kind</a>, <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a></td></tr>
|
|
141
144
|
<tr class="separator:a93b41c2f0eca82e6eaf49895b2b13a1e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
142
|
-
<tr class="memitem:
|
|
143
|
-
<tr class="memdesc:
|
|
144
|
-
<tr class="separator:
|
|
145
|
-
<tr class="memitem:aad408d6ecb776fd763c9b9221a1bed18"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#
|
|
145
|
+
<tr class="memitem:af34aa7ae71e100d8bbe7c1b17c1f0068"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFGrammar::Kind</a>, <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>< <a class="el" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFGrammar::Attribute</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">kindToAttrsMap</a></td></tr>
|
|
146
|
+
<tr class="memdesc:af34aa7ae71e100d8bbe7c1b17c1f0068"><td class="mdescLeft"> </td><td class="mdescRight">Map to maintain attributes associated with each kind. <a href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">More...</a><br /></td></tr>
|
|
147
|
+
<tr class="separator:af34aa7ae71e100d8bbe7c1b17c1f0068"><td class="memSeparator" colspan="2"> </td></tr>
|
|
148
|
+
<tr class="memitem:aad408d6ecb776fd763c9b9221a1bed18"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">Kind</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a></td></tr>
|
|
146
149
|
<tr class="separator:aad408d6ecb776fd763c9b9221a1bed18"><td class="memSeparator" colspan="2"> </td></tr>
|
|
147
150
|
<tr class="memitem:af034366ce280120e5cd1a5685894e9ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a></td></tr>
|
|
148
151
|
<tr class="separator:af034366ce280120e5cd1a5685894e9ac"><td class="memSeparator" colspan="2"> </td></tr>
|
|
149
152
|
</table>
|
|
150
153
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
151
|
-
<div class="textblock"><p><a class="el" href="classSVF_1_1CFLGraphBuilder.html">CFLGraphBuilder</a> class is responsible for building CFL (Context-Free Language) graphs from text files
|
|
154
|
+
<div class="textblock"><p><a class="el" href="classSVF_1_1CFLGraphBuilder.html">CFLGraphBuilder</a> class is responsible for building CFL (Context-Free Language) graphs from text files, dot files, json file or from memory graph. </p>
|
|
152
155
|
|
|
153
|
-
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#
|
|
156
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#l00050">50</a> of file <a class="el" href="CFLGraphBuilder_8h_source.html">CFLGraphBuilder.h</a>.</p>
|
|
154
157
|
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
155
|
-
<a id="
|
|
156
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
158
|
+
<a id="a41f8cc1264aa99c581e1d6f3150a2d48"></a>
|
|
159
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a41f8cc1264aa99c581e1d6f3150a2d48">◆ </a></span>Kind</h2>
|
|
157
160
|
|
|
158
161
|
<div class="memitem">
|
|
159
162
|
<div class="memproto">
|
|
@@ -162,7 +165,7 @@ Protected Attributes</h2></td></tr>
|
|
|
162
165
|
<td class="mlabels-left">
|
|
163
166
|
<table class="memname">
|
|
164
167
|
<tr>
|
|
165
|
-
<td class="memname">typedef <a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">
|
|
168
|
+
<td class="memname">typedef <a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFGrammar::Kind</a> <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">SVF::CFLGraphBuilder::Kind</a></td>
|
|
166
169
|
</tr>
|
|
167
170
|
</table>
|
|
168
171
|
</td>
|
|
@@ -171,14 +174,14 @@ Protected Attributes</h2></td></tr>
|
|
|
171
174
|
</tr>
|
|
172
175
|
</table>
|
|
173
176
|
</div><div class="memdoc">
|
|
174
|
-
<p>Define Kind(Not contain attribute) and Symbol(May contain attribute) as types derived from <a class="el" href="
|
|
177
|
+
<p>Define Kind(Not contain attribute) and Symbol(May contain attribute) as types derived from <a class="el" href="classSVF_1_1CFGrammar.html">CFGrammar</a> to numerically represent label </p>
|
|
175
178
|
|
|
176
|
-
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#
|
|
179
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#l00055">55</a> of file <a class="el" href="CFLGraphBuilder_8h_source.html">CFLGraphBuilder.h</a>.</p>
|
|
177
180
|
|
|
178
181
|
</div>
|
|
179
182
|
</div>
|
|
180
|
-
<a id="
|
|
181
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
183
|
+
<a id="a2ab271d42ab82aea2adf8b0e641aa39c"></a>
|
|
184
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a2ab271d42ab82aea2adf8b0e641aa39c">◆ </a></span>Symbol</h2>
|
|
182
185
|
|
|
183
186
|
<div class="memitem">
|
|
184
187
|
<div class="memproto">
|
|
@@ -187,7 +190,7 @@ Protected Attributes</h2></td></tr>
|
|
|
187
190
|
<td class="mlabels-left">
|
|
188
191
|
<table class="memname">
|
|
189
192
|
<tr>
|
|
190
|
-
<td class="memname">typedef <a class="el" href="structSVF_1_1GrammarBase_1_1Symbol.html">
|
|
193
|
+
<td class="memname">typedef <a class="el" href="structSVF_1_1GrammarBase_1_1Symbol.html">CFGrammar::Symbol</a> <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a2ab271d42ab82aea2adf8b0e641aa39c">SVF::CFLGraphBuilder::Symbol</a></td>
|
|
191
194
|
</tr>
|
|
192
195
|
</table>
|
|
193
196
|
</td>
|
|
@@ -197,13 +200,13 @@ Protected Attributes</h2></td></tr>
|
|
|
197
200
|
</table>
|
|
198
201
|
</div><div class="memdoc">
|
|
199
202
|
|
|
200
|
-
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#
|
|
203
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#l00056">56</a> of file <a class="el" href="CFLGraphBuilder_8h_source.html">CFLGraphBuilder.h</a>.</p>
|
|
201
204
|
|
|
202
205
|
</div>
|
|
203
206
|
</div>
|
|
204
207
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
205
|
-
<a id="
|
|
206
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
208
|
+
<a id="af05b577fbb64082d80ca4cfa2e2bc4f1"></a>
|
|
209
|
+
<h2 class="memtitle"><span class="permalink"><a href="#af05b577fbb64082d80ca4cfa2e2bc4f1">◆ </a></span>addAttribute()</h2>
|
|
207
210
|
|
|
208
211
|
<div class="memitem">
|
|
209
212
|
<div class="memproto">
|
|
@@ -214,13 +217,13 @@ Protected Attributes</h2></td></tr>
|
|
|
214
217
|
<tr>
|
|
215
218
|
<td class="memname">void SVF::CFLGraphBuilder::addAttribute </td>
|
|
216
219
|
<td>(</td>
|
|
217
|
-
<td class="paramtype"><a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">
|
|
220
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFGrammar::Kind</a> </td>
|
|
218
221
|
<td class="paramname"><em>kind</em>, </td>
|
|
219
222
|
</tr>
|
|
220
223
|
<tr>
|
|
221
224
|
<td class="paramkey"></td>
|
|
222
225
|
<td></td>
|
|
223
|
-
<td class="paramtype"><a class="el" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">
|
|
226
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFGrammar::Attribute</a> </td>
|
|
224
227
|
<td class="paramname"><em>attribute</em> </td>
|
|
225
228
|
</tr>
|
|
226
229
|
<tr>
|
|
@@ -241,16 +244,16 @@ Protected Attributes</h2></td></tr>
|
|
|
241
244
|
|
|
242
245
|
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8cpp_source.html#l00037">37</a> of file <a class="el" href="CFLGraphBuilder_8cpp_source.html">CFLGraphBuilder.cpp</a>.</p>
|
|
243
246
|
<div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div>
|
|
244
|
-
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#
|
|
247
|
+
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">kindToAttrsMap</a>.find(kind) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">kindToAttrsMap</a>.end())</div>
|
|
245
248
|
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  {</div>
|
|
246
|
-
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  Set<
|
|
247
|
-
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#
|
|
249
|
+
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  Set<CFGrammar::Attribute> attrs{attribute};</div>
|
|
250
|
+
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">kindToAttrsMap</a>.insert(make_pair(kind, attrs));</div>
|
|
248
251
|
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  }</div>
|
|
249
252
|
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">else</span></div>
|
|
250
253
|
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  {</div>
|
|
251
|
-
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#
|
|
254
|
+
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">kindToAttrsMap</a>[kind].find(attribute) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">kindToAttrsMap</a>[kind].end())</div>
|
|
252
255
|
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  {</div>
|
|
253
|
-
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#
|
|
256
|
+
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">kindToAttrsMap</a>[kind].insert(attribute);</div>
|
|
254
257
|
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  }</div>
|
|
255
258
|
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  }</div>
|
|
256
259
|
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> }</div>
|
|
@@ -300,19 +303,16 @@ Protected Attributes</h2></td></tr>
|
|
|
300
303
|
</div><!-- fragment -->
|
|
301
304
|
</div>
|
|
302
305
|
</div>
|
|
303
|
-
<a id="
|
|
304
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
306
|
+
<a id="a27b247b46ce0b467459fcc2d53f50383"></a>
|
|
307
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a27b247b46ce0b467459fcc2d53f50383">◆ </a></span>build() <span class="overload">[1/2]</span></h2>
|
|
305
308
|
|
|
306
309
|
<div class="memitem">
|
|
307
310
|
<div class="memproto">
|
|
308
311
|
<div class="memtemplate">
|
|
309
312
|
template<class N , class E > </div>
|
|
310
|
-
<table class="mlabels">
|
|
311
|
-
<tr>
|
|
312
|
-
<td class="mlabels-left">
|
|
313
313
|
<table class="memname">
|
|
314
314
|
<tr>
|
|
315
|
-
<td class="memname">
|
|
315
|
+
<td class="memname"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * SVF::CFLGraphBuilder::build </td>
|
|
316
316
|
<td>(</td>
|
|
317
317
|
<td class="paramtype"><a class="el" href="classSVF_1_1GenericGraph.html">GenericGraph</a>< N, E > * </td>
|
|
318
318
|
<td class="paramname"><em>graph</em>, </td>
|
|
@@ -320,8 +320,14 @@ template<class N , class E > </div>
|
|
|
320
320
|
<tr>
|
|
321
321
|
<td class="paramkey"></td>
|
|
322
322
|
<td></td>
|
|
323
|
-
<td class="paramtype"><a class="el" href="
|
|
324
|
-
<td class="paramname"><em>
|
|
323
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> * </td>
|
|
324
|
+
<td class="paramname"><em>grammar</em>, </td>
|
|
325
|
+
</tr>
|
|
326
|
+
<tr>
|
|
327
|
+
<td class="paramkey"></td>
|
|
328
|
+
<td></td>
|
|
329
|
+
<td class="paramtype"><a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">BuildDirection</a> </td>
|
|
330
|
+
<td class="paramname"><em>direction</em> = <code><a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caaaac7938d40cfc2307e2bf325d28e7884e">BuildDirection::plain</a></code> </td>
|
|
325
331
|
</tr>
|
|
326
332
|
<tr>
|
|
327
333
|
<td></td>
|
|
@@ -329,61 +335,114 @@ template<class N , class E > </div>
|
|
|
329
335
|
<td></td><td></td>
|
|
330
336
|
</tr>
|
|
331
337
|
</table>
|
|
332
|
-
</td>
|
|
333
|
-
<td class="mlabels-right">
|
|
334
|
-
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
335
|
-
</tr>
|
|
336
|
-
</table>
|
|
337
338
|
</div><div class="memdoc">
|
|
338
|
-
<p>Method to build a CFL graph by copying nodes and edges from any graph inherited from <a class="el" href="classSVF_1_1GenericGraph.html">GenericGraph</a
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
<
|
|
342
|
-
<div class="line"><a name="
|
|
343
|
-
<div class="line"><a name="
|
|
344
|
-
<div class="line"><a name="
|
|
345
|
-
<div class="line"><a name="
|
|
346
|
-
<div class="line"><a name="
|
|
347
|
-
<div class="line"><a name="
|
|
348
|
-
<div class="line"><a name="
|
|
349
|
-
<div class="line"><a name="
|
|
350
|
-
<div class="line"><a name="
|
|
351
|
-
<div class="line"><a name="
|
|
352
|
-
<div class="line"><a name="
|
|
353
|
-
<div class="line"><a name="
|
|
354
|
-
<div class="line"><a name="
|
|
355
|
-
<div class="line"><a name="
|
|
339
|
+
<p>Method to build a CFL graph by copying nodes and edges from any graph inherited from <a class="el" href="classSVF_1_1GenericGraph.html">GenericGraph</a></p>
|
|
340
|
+
<p>Method to build a bidirectional CFL graph by copying nodes and edges from any graph inherited from <a class="el" href="classSVF_1_1GenericGraph.html">GenericGraph</a> </p>
|
|
341
|
+
|
|
342
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8cpp_source.html#l00101">101</a> of file <a class="el" href="CFLGraphBuilder_8cpp_source.html">CFLGraphBuilder.cpp</a>.</p>
|
|
343
|
+
<div class="fragment"><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> {</div>
|
|
344
|
+
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a> = <span class="keyword">new</span> CFLGraph(grammar->getStartKind());</div>
|
|
345
|
+
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="comment">// buildlabelToKindMap(grammar);</span></div>
|
|
346
|
+
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph->begin(); it!= graph->end(); it++)</div>
|
|
347
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  {</div>
|
|
348
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  CFLNode* node = <span class="keyword">new</span> CFLNode((*it).first);</div>
|
|
349
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a58b944d0f2c11868e17223acdb35f82c">addCFLNode</a>((*it).first, node);</div>
|
|
350
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div>
|
|
351
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph->begin(); it!= graph->end(); it++)</div>
|
|
352
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  {</div>
|
|
353
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  N* node = (*it).second;</div>
|
|
354
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">for</span>(E* edge : node->getOutEdges())</div>
|
|
355
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div>
|
|
356
|
+
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFGrammar::Kind</a> edgeLabel = edge->getEdgeKind();</div>
|
|
357
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), edgeLabel);</div>
|
|
358
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">if</span> (direction == <a class="code" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caaaf3515b032dca85081a3d653d0cb9b995">BuildDirection::bidirection</a>)</div>
|
|
359
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  {</div>
|
|
360
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = grammar->kindToStr(edge);</div>
|
|
361
|
+
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  label.append(<span class="stringliteral">"bar"</span>);</div>
|
|
362
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), grammar->strToKind(label));</div>
|
|
363
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div>
|
|
364
|
+
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div>
|
|
365
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  }</div>
|
|
366
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>;</div>
|
|
367
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> }</div>
|
|
356
368
|
</div><!-- fragment -->
|
|
357
369
|
</div>
|
|
358
370
|
</div>
|
|
359
|
-
<a id="
|
|
360
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
371
|
+
<a id="a2e97c964eb1e187a931f17da9672815f"></a>
|
|
372
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a2e97c964eb1e187a931f17da9672815f">◆ </a></span>build() <span class="overload">[2/2]</span></h2>
|
|
373
|
+
|
|
374
|
+
<div class="memitem">
|
|
375
|
+
<div class="memproto">
|
|
376
|
+
<table class="memname">
|
|
377
|
+
<tr>
|
|
378
|
+
<td class="memname"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * SVF::CFLGraphBuilder::build </td>
|
|
379
|
+
<td>(</td>
|
|
380
|
+
<td class="paramtype"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> </td>
|
|
381
|
+
<td class="paramname"><em>fileName</em>, </td>
|
|
382
|
+
</tr>
|
|
383
|
+
<tr>
|
|
384
|
+
<td class="paramkey"></td>
|
|
385
|
+
<td></td>
|
|
386
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> * </td>
|
|
387
|
+
<td class="paramname"><em>grammar</em>, </td>
|
|
388
|
+
</tr>
|
|
389
|
+
<tr>
|
|
390
|
+
<td class="paramkey"></td>
|
|
391
|
+
<td></td>
|
|
392
|
+
<td class="paramtype"><a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">BuildDirection</a> </td>
|
|
393
|
+
<td class="paramname"><em>direction</em> = <code><a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caaaac7938d40cfc2307e2bf325d28e7884e">BuildDirection::plain</a></code> </td>
|
|
394
|
+
</tr>
|
|
395
|
+
<tr>
|
|
396
|
+
<td></td>
|
|
397
|
+
<td>)</td>
|
|
398
|
+
<td></td><td></td>
|
|
399
|
+
</tr>
|
|
400
|
+
</table>
|
|
401
|
+
</div><div class="memdoc">
|
|
402
|
+
|
|
403
|
+
<p>Method to build a CFL graph from external file. </p>
|
|
404
|
+
|
|
405
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8cpp_source.html#l00128">128</a> of file <a class="el" href="CFLGraphBuilder_8cpp_source.html">CFLGraphBuilder.cpp</a>.</p>
|
|
406
|
+
<div class="fragment"><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> {</div>
|
|
407
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordtype">bool</span> isDot = (fileName.rfind(<span class="stringliteral">".dot"</span>) == fileName.length() - <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>(<span class="stringliteral">".dot"</span>).length());</div>
|
|
408
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">if</span> (isDot)</div>
|
|
409
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1e3b5220f536443019ea25262169498a">buildFromDot</a>(fileName, grammar, direction);</div>
|
|
410
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
|
|
411
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordtype">bool</span> isJson = (fileName.rfind(<span class="stringliteral">".json"</span>) == fileName.length() - <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>(<span class="stringliteral">".json"</span>).length());</div>
|
|
412
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">if</span> (isJson)</div>
|
|
413
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aa1a24c858e46b68e9f6a99668d880f6a">buildFromJson</a>(fileName, grammar, direction);</div>
|
|
414
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  </div>
|
|
415
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aea046c5f1971069a50100afe7ffed89f">buildFromText</a>(fileName, grammar, direction);</div>
|
|
416
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> }</div>
|
|
417
|
+
</div><!-- fragment -->
|
|
418
|
+
</div>
|
|
419
|
+
</div>
|
|
420
|
+
<a id="a1e3b5220f536443019ea25262169498a"></a>
|
|
421
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a1e3b5220f536443019ea25262169498a">◆ </a></span>buildFromDot()</h2>
|
|
361
422
|
|
|
362
423
|
<div class="memitem">
|
|
363
424
|
<div class="memproto">
|
|
364
|
-
<div class="memtemplate">
|
|
365
|
-
template<class N , class E > </div>
|
|
366
425
|
<table class="mlabels">
|
|
367
426
|
<tr>
|
|
368
427
|
<td class="mlabels-left">
|
|
369
428
|
<table class="memname">
|
|
370
429
|
<tr>
|
|
371
|
-
<td class="memname"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a
|
|
430
|
+
<td class="memname"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * SVF::CFLGraphBuilder::buildFromDot </td>
|
|
372
431
|
<td>(</td>
|
|
373
|
-
<td class="paramtype"><a class="el" href="
|
|
374
|
-
<td class="paramname"><em>
|
|
432
|
+
<td class="paramtype"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> </td>
|
|
433
|
+
<td class="paramname"><em>filename</em>, </td>
|
|
375
434
|
</tr>
|
|
376
435
|
<tr>
|
|
377
436
|
<td class="paramkey"></td>
|
|
378
437
|
<td></td>
|
|
379
|
-
<td class="paramtype"><a class="el" href="
|
|
380
|
-
<td class="paramname"><em>
|
|
438
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> * </td>
|
|
439
|
+
<td class="paramname"><em>grammar</em>, </td>
|
|
381
440
|
</tr>
|
|
382
441
|
<tr>
|
|
383
442
|
<td class="paramkey"></td>
|
|
384
443
|
<td></td>
|
|
385
|
-
<td class="paramtype"><a class="el" href="
|
|
386
|
-
<td class="paramname"><em>
|
|
444
|
+
<td class="paramtype"><a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">BuildDirection</a> </td>
|
|
445
|
+
<td class="paramname"><em>direction</em> = <code><a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caaaac7938d40cfc2307e2bf325d28e7884e">BuildDirection::plain</a></code> </td>
|
|
387
446
|
</tr>
|
|
388
447
|
<tr>
|
|
389
448
|
<td></td>
|
|
@@ -393,67 +452,73 @@ template<class N , class E > </div>
|
|
|
393
452
|
</table>
|
|
394
453
|
</td>
|
|
395
454
|
<td class="mlabels-right">
|
|
396
|
-
<span class="mlabels"><span class="mlabel">
|
|
455
|
+
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
|
397
456
|
</tr>
|
|
398
457
|
</table>
|
|
399
458
|
</div><div class="memdoc">
|
|
400
|
-
<p>Method to build a bidirectional CFL graph by copying nodes and edges from any graph inherited from <a class="el" href="classSVF_1_1GenericGraph.html">GenericGraph</a> </p>
|
|
401
459
|
|
|
402
|
-
<p
|
|
403
|
-
|
|
404
|
-
<
|
|
405
|
-
<div class="line"><a name="
|
|
406
|
-
<div class="line"><a name="
|
|
407
|
-
<div class="line"><a name="
|
|
408
|
-
<div class="line"><a name="
|
|
409
|
-
<div class="line"><a name="
|
|
410
|
-
<div class="line"><a name="
|
|
411
|
-
<div class="line"><a name="
|
|
412
|
-
<div class="line"><a name="
|
|
413
|
-
<div class="line"><a name="
|
|
414
|
-
<div class="line"><a name="
|
|
415
|
-
<div class="line"><a name="
|
|
416
|
-
<div class="line"><a name="
|
|
417
|
-
<div class="line"><a name="
|
|
418
|
-
<div class="line"><a name="
|
|
419
|
-
<div class="line"><a name="
|
|
420
|
-
<div class="line"><a name="
|
|
421
|
-
<div class="line"><a name="
|
|
422
|
-
<div class="line"><a name="
|
|
423
|
-
<div class="line"><a name="
|
|
424
|
-
<div class="line"><a name="
|
|
425
|
-
<div class="line"><a name="
|
|
426
|
-
<div class="line"><a name="
|
|
427
|
-
<div class="line"><a name="
|
|
428
|
-
<div class="line"><a name="
|
|
429
|
-
<div class="line"><a name="
|
|
430
|
-
<div class="line"><a name="
|
|
431
|
-
<div class="line"><a name="
|
|
432
|
-
<div class="line"><a name="
|
|
433
|
-
<div class="line"><a name="
|
|
434
|
-
<div class="line"><a name="
|
|
435
|
-
<div class="line"><a name="
|
|
436
|
-
<div class="line"><a name="
|
|
437
|
-
<div class="line"><a name="
|
|
438
|
-
<div class="line"><a name="
|
|
439
|
-
<div class="line"><a name="
|
|
440
|
-
<div class="line"><a name="
|
|
441
|
-
<div class="line"><a name="
|
|
442
|
-
<div class="line"><a name="
|
|
443
|
-
<div class="line"><a name="
|
|
444
|
-
<div class="line"><a name="
|
|
445
|
-
<div class="line"><a name="
|
|
460
|
+
<p>Method to build a CFL graph from a Dot file. </p>
|
|
461
|
+
|
|
462
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8cpp_source.html#l00196">196</a> of file <a class="el" href="CFLGraphBuilder_8cpp_source.html">CFLGraphBuilder.cpp</a>.</p>
|
|
463
|
+
<div class="fragment"><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> {</div>
|
|
464
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a01e5d31c43d40f8a518aa8d371b085d8">buildlabelToKindMap</a>(grammar);</div>
|
|
465
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a> = <span class="keyword">new</span> CFLGraph(grammar->getStartKind());</div>
|
|
466
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> lineString;</div>
|
|
467
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  std::ifstream inputFile(fileName);</div>
|
|
468
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  std::cout << <span class="stringliteral">"Building CFL Graph from dot file: "</span> << fileName << <span class="stringliteral">"..\n"</span>;</div>
|
|
469
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  std::regex reg(<span class="stringliteral">"Node(\\w+)\\s*->\\s*Node(\\w+)\\s*\\[.*label=(.*)\\]"</span>);</div>
|
|
470
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  std::cout << std::boolalpha;</div>
|
|
471
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> lineNum = 0 ;</div>
|
|
472
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a> = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.size();</div>
|
|
473
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  </div>
|
|
474
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">while</span> (getline(inputFile, lineString))</div>
|
|
475
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  {</div>
|
|
476
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  lineNum += 1;</div>
|
|
477
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  std::smatch matches;</div>
|
|
478
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">if</span> (std::regex_search(lineString, matches, reg))</div>
|
|
479
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  {</div>
|
|
480
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> srcID = std::stoul(matches.str(1), <span class="keyword">nullptr</span>, 16);</div>
|
|
481
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> dstID = std::stoul(matches.str(2), <span class="keyword">nullptr</span>, 16);</div>
|
|
482
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = matches.str(3);</div>
|
|
483
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  CFLNode *src = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aec30ce1ad7be5ac2e41f73ddba356fd9">addGNode</a>(srcID);</div>
|
|
484
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  CFLNode *dst = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aec30ce1ad7be5ac2e41f73ddba356fd9">addGNode</a>(dstID);</div>
|
|
485
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.find(label) != <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.end())</div>
|
|
486
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
487
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">else</span></div>
|
|
488
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  {</div>
|
|
489
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a8e22c3bca5ee0e4e7d90e857a5ea8031">Options::FlexSymMap</a>() == <span class="keyword">true</span>)</div>
|
|
490
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  {</div>
|
|
491
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.insert({label, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a>++});</div>
|
|
492
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
493
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div>
|
|
494
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">else</span></div>
|
|
495
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  {</div>
|
|
496
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg = <span class="stringliteral">"In line "</span> + std::to_string(lineNum) +</div>
|
|
497
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="stringliteral">" sym can not find in grammar, please correct the input dot or set --flexsymmap."</span>;</div>
|
|
498
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">SVFUtil::errMsg</a>(msg);</div>
|
|
499
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  std::cout << msg;</div>
|
|
500
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  abort();</div>
|
|
501
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div>
|
|
502
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div>
|
|
503
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div>
|
|
504
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div>
|
|
505
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  inputFile.close();</div>
|
|
506
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>;</div>
|
|
507
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> }</div>
|
|
446
508
|
</div><!-- fragment -->
|
|
447
509
|
</div>
|
|
448
510
|
</div>
|
|
449
|
-
<a id="
|
|
450
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
511
|
+
<a id="aa1a24c858e46b68e9f6a99668d880f6a"></a>
|
|
512
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aa1a24c858e46b68e9f6a99668d880f6a">◆ </a></span>buildFromJson()</h2>
|
|
451
513
|
|
|
452
514
|
<div class="memitem">
|
|
453
515
|
<div class="memproto">
|
|
516
|
+
<table class="mlabels">
|
|
517
|
+
<tr>
|
|
518
|
+
<td class="mlabels-left">
|
|
454
519
|
<table class="memname">
|
|
455
520
|
<tr>
|
|
456
|
-
<td class="memname"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * SVF::CFLGraphBuilder::
|
|
521
|
+
<td class="memname"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * SVF::CFLGraphBuilder::buildFromJson </td>
|
|
457
522
|
<td>(</td>
|
|
458
523
|
<td class="paramtype"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> </td>
|
|
459
524
|
<td class="paramname"><em>filename</em>, </td>
|
|
@@ -462,7 +527,13 @@ template<class N , class E > </div>
|
|
|
462
527
|
<td class="paramkey"></td>
|
|
463
528
|
<td></td>
|
|
464
529
|
<td class="paramtype"><a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> * </td>
|
|
465
|
-
<td class="paramname"><em>grammar</em
|
|
530
|
+
<td class="paramname"><em>grammar</em>, </td>
|
|
531
|
+
</tr>
|
|
532
|
+
<tr>
|
|
533
|
+
<td class="paramkey"></td>
|
|
534
|
+
<td></td>
|
|
535
|
+
<td class="paramtype"><a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">BuildDirection</a> </td>
|
|
536
|
+
<td class="paramname"><em>direction</em> = <code><a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caaaac7938d40cfc2307e2bf325d28e7884e">BuildDirection::plain</a></code> </td>
|
|
466
537
|
</tr>
|
|
467
538
|
<tr>
|
|
468
539
|
<td></td>
|
|
@@ -470,67 +541,34 @@ template<class N , class E > </div>
|
|
|
470
541
|
<td></td><td></td>
|
|
471
542
|
</tr>
|
|
472
543
|
</table>
|
|
544
|
+
</td>
|
|
545
|
+
<td class="mlabels-right">
|
|
546
|
+
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
|
547
|
+
</tr>
|
|
548
|
+
</table>
|
|
473
549
|
</div><div class="memdoc">
|
|
474
550
|
|
|
475
|
-
<p>Method to build a CFL graph from a
|
|
551
|
+
<p>Method to build a CFL graph from a Json file. </p>
|
|
476
552
|
|
|
477
|
-
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8cpp_source.html#
|
|
478
|
-
<div class="fragment"><div class="line"><a name="
|
|
479
|
-
<div class="line"><a name="
|
|
480
|
-
<div class="line"><a name="
|
|
481
|
-
<div class="line"><a name="
|
|
482
|
-
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  std::ifstream inputFile(fileName);</div>
|
|
483
|
-
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  std::cout << <span class="stringliteral">"Building CFL Graph from dot file: "</span> << fileName << <span class="stringliteral">"..\n"</span>;</div>
|
|
484
|
-
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  std::regex reg(<span class="stringliteral">"Node(\\w+)\\s*->\\s*Node(\\w+)\\s*\\[.*label=(.*)\\]"</span>);</div>
|
|
485
|
-
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  std::cout << std::boolalpha;</div>
|
|
486
|
-
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> lineNum = 0 ;</div>
|
|
487
|
-
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a> = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.size();</div>
|
|
488
|
-
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  </div>
|
|
489
|
-
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">while</span> (getline(inputFile, lineString))</div>
|
|
490
|
-
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  {</div>
|
|
491
|
-
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  lineNum += 1;</div>
|
|
492
|
-
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  std::smatch matches;</div>
|
|
493
|
-
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">if</span> (std::regex_search(lineString, matches, reg))</div>
|
|
494
|
-
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  {</div>
|
|
495
|
-
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> srcID = std::stoul(matches.str(1), <span class="keyword">nullptr</span>, 16);</div>
|
|
496
|
-
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> dstID = std::stoul(matches.str(2), <span class="keyword">nullptr</span>, 16);</div>
|
|
497
|
-
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = matches.str(3);</div>
|
|
498
|
-
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  CFLNode *src = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aec30ce1ad7be5ac2e41f73ddba356fd9">addGNode</a>(srcID);</div>
|
|
499
|
-
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  CFLNode *dst = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aec30ce1ad7be5ac2e41f73ddba356fd9">addGNode</a>(dstID);</div>
|
|
500
|
-
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.find(label) != <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.end())</div>
|
|
501
|
-
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
502
|
-
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">else</span></div>
|
|
503
|
-
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  {</div>
|
|
504
|
-
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a8e22c3bca5ee0e4e7d90e857a5ea8031">Options::FlexSymMap</a>() == <span class="keyword">true</span>)</div>
|
|
505
|
-
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  {</div>
|
|
506
|
-
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.insert({label, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a>++});</div>
|
|
507
|
-
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
508
|
-
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  }</div>
|
|
509
|
-
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">else</span></div>
|
|
510
|
-
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  {</div>
|
|
511
|
-
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg = <span class="stringliteral">"In line "</span> + std::to_string(lineNum) +</div>
|
|
512
|
-
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="stringliteral">" sym can not find in grammar, please correct the input dot or set --flexsymmap."</span>;</div>
|
|
513
|
-
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">SVFUtil::errMsg</a>(msg);</div>
|
|
514
|
-
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  std::cout << msg;</div>
|
|
515
|
-
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  abort();</div>
|
|
516
|
-
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  }</div>
|
|
517
|
-
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</div>
|
|
518
|
-
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  }</div>
|
|
519
|
-
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div>
|
|
520
|
-
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  inputFile.close();</div>
|
|
521
|
-
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>;</div>
|
|
522
|
-
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> }</div>
|
|
553
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8cpp_source.html#l00244">244</a> of file <a class="el" href="CFLGraphBuilder_8cpp_source.html">CFLGraphBuilder.cpp</a>.</p>
|
|
554
|
+
<div class="fragment"><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> {</div>
|
|
555
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a> = <span class="keyword">new</span> CFLGraph(grammar->getStartKind());</div>
|
|
556
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>;</div>
|
|
557
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> }</div>
|
|
523
558
|
</div><!-- fragment -->
|
|
524
559
|
</div>
|
|
525
560
|
</div>
|
|
526
|
-
<a id="
|
|
527
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
561
|
+
<a id="aea046c5f1971069a50100afe7ffed89f"></a>
|
|
562
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aea046c5f1971069a50100afe7ffed89f">◆ </a></span>buildFromText()</h2>
|
|
528
563
|
|
|
529
564
|
<div class="memitem">
|
|
530
565
|
<div class="memproto">
|
|
566
|
+
<table class="mlabels">
|
|
567
|
+
<tr>
|
|
568
|
+
<td class="mlabels-left">
|
|
531
569
|
<table class="memname">
|
|
532
570
|
<tr>
|
|
533
|
-
<td class="memname"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * SVF::CFLGraphBuilder::
|
|
571
|
+
<td class="memname"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * SVF::CFLGraphBuilder::buildFromText </td>
|
|
534
572
|
<td>(</td>
|
|
535
573
|
<td class="paramtype"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> </td>
|
|
536
574
|
<td class="paramname"><em>fileName</em>, </td>
|
|
@@ -539,7 +577,13 @@ template<class N , class E > </div>
|
|
|
539
577
|
<td class="paramkey"></td>
|
|
540
578
|
<td></td>
|
|
541
579
|
<td class="paramtype"><a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> * </td>
|
|
542
|
-
<td class="paramname"><em>grammar</em
|
|
580
|
+
<td class="paramname"><em>grammar</em>, </td>
|
|
581
|
+
</tr>
|
|
582
|
+
<tr>
|
|
583
|
+
<td class="paramkey"></td>
|
|
584
|
+
<td></td>
|
|
585
|
+
<td class="paramtype"><a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">BuildDirection</a> </td>
|
|
586
|
+
<td class="paramname"><em>direction</em> = <code><a class="el" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caaaac7938d40cfc2307e2bf325d28e7884e">BuildDirection::plain</a></code> </td>
|
|
543
587
|
</tr>
|
|
544
588
|
<tr>
|
|
545
589
|
<td></td>
|
|
@@ -547,63 +591,68 @@ template<class N , class E > </div>
|
|
|
547
591
|
<td></td><td></td>
|
|
548
592
|
</tr>
|
|
549
593
|
</table>
|
|
594
|
+
</td>
|
|
595
|
+
<td class="mlabels-right">
|
|
596
|
+
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
|
597
|
+
</tr>
|
|
598
|
+
</table>
|
|
550
599
|
</div><div class="memdoc">
|
|
551
600
|
|
|
552
601
|
<p>Method to build a CFL graph from a Text file. </p>
|
|
553
602
|
|
|
554
|
-
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8cpp_source.html#
|
|
555
|
-
<div class="fragment"><div class="line"><a name="
|
|
556
|
-
<div class="line"><a name="
|
|
557
|
-
<div class="line"><a name="
|
|
558
|
-
<div class="line"><a name="
|
|
559
|
-
<div class="line"><a name="
|
|
560
|
-
<div class="line"><a name="
|
|
561
|
-
<div class="line"><a name="
|
|
562
|
-
<div class="line"><a name="
|
|
563
|
-
<div class="line"><a name="
|
|
564
|
-
<div class="line"><a name="
|
|
565
|
-
<div class="line"><a name="
|
|
566
|
-
<div class="line"><a name="
|
|
567
|
-
<div class="line"><a name="
|
|
568
|
-
<div class="line"><a name="
|
|
569
|
-
<div class="line"><a name="
|
|
570
|
-
<div class="line"><a name="
|
|
571
|
-
<div class="line"><a name="
|
|
572
|
-
<div class="line"><a name="
|
|
573
|
-
<div class="line"><a name="
|
|
574
|
-
<div class="line"><a name="
|
|
575
|
-
<div class="line"><a name="
|
|
576
|
-
<div class="line"><a name="
|
|
577
|
-
<div class="line"><a name="
|
|
578
|
-
<div class="line"><a name="
|
|
579
|
-
<div class="line"><a name="
|
|
580
|
-
<div class="line"><a name="
|
|
581
|
-
<div class="line"><a name="
|
|
582
|
-
<div class="line"><a name="
|
|
583
|
-
<div class="line"><a name="
|
|
584
|
-
<div class="line"><a name="
|
|
585
|
-
<div class="line"><a name="
|
|
586
|
-
<div class="line"><a name="
|
|
587
|
-
<div class="line"><a name="
|
|
588
|
-
<div class="line"><a name="
|
|
589
|
-
<div class="line"><a name="
|
|
590
|
-
<div class="line"><a name="
|
|
591
|
-
<div class="line"><a name="
|
|
592
|
-
<div class="line"><a name="
|
|
593
|
-
<div class="line"><a name="
|
|
594
|
-
<div class="line"><a name="
|
|
595
|
-
<div class="line"><a name="
|
|
596
|
-
<div class="line"><a name="
|
|
597
|
-
<div class="line"><a name="
|
|
598
|
-
<div class="line"><a name="
|
|
599
|
-
<div class="line"><a name="
|
|
600
|
-
<div class="line"><a name="
|
|
601
|
-
<div class="line"><a name="
|
|
602
|
-
<div class="line"><a name="
|
|
603
|
-
<div class="line"><a name="
|
|
604
|
-
<div class="line"><a name="
|
|
605
|
-
<div class="line"><a name="
|
|
606
|
-
<div class="line"><a name="
|
|
603
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8cpp_source.html#l00142">142</a> of file <a class="el" href="CFLGraphBuilder_8cpp_source.html">CFLGraphBuilder.cpp</a>.</p>
|
|
604
|
+
<div class="fragment"><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> {</div>
|
|
605
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a01e5d31c43d40f8a518aa8d371b085d8">buildlabelToKindMap</a>(grammar);</div>
|
|
606
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a> = <span class="keyword">new</span> CFLGraph(grammar->getStartKind());</div>
|
|
607
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div>
|
|
608
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  std::cout << <span class="stringliteral">"Building CFL Graph from text file: "</span> << fileName << <span class="stringliteral">"..\n"</span>;</div>
|
|
609
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> lineString;</div>
|
|
610
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  std::ifstream inputFile(fileName);</div>
|
|
611
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  </div>
|
|
612
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">if</span> (!inputFile.is_open())</div>
|
|
613
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  {</div>
|
|
614
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <span class="stringliteral">"Error opening "</span> << fileName << std::endl;</div>
|
|
615
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  abort();</div>
|
|
616
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div>
|
|
617
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  </div>
|
|
618
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> line;</div>
|
|
619
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a> = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.size();</div>
|
|
620
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> lineNum = 0 ;</div>
|
|
621
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div>
|
|
622
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">while</span> (getline(inputFile, line))</div>
|
|
623
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  {</div>
|
|
624
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  std::vector<std::string> vec = <a class="code" href="namespaceSVF_1_1SVFUtil.html#ae18227f257c9881541b84ca186680dfd">SVFUtil::split</a>(line, <span class="charliteral">'\t'</span>);</div>
|
|
625
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">if</span> (vec.empty())</div>
|
|
626
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">continue</span>;</div>
|
|
627
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  lineNum += 1;</div>
|
|
628
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcID = std::stoi(vec[0]);</div>
|
|
629
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstID = std::stoi(vec[1]);</div>
|
|
630
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  CFLNode *src = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aec30ce1ad7be5ac2e41f73ddba356fd9">addGNode</a>(srcID);</div>
|
|
631
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  CFLNode *dst = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aec30ce1ad7be5ac2e41f73ddba356fd9">addGNode</a>(dstID);</div>
|
|
632
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = vec[2];</div>
|
|
633
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.find(label) != <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.end())</div>
|
|
634
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
635
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">else</span></div>
|
|
636
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  {</div>
|
|
637
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a8e22c3bca5ee0e4e7d90e857a5ea8031">Options::FlexSymMap</a>() == <span class="keyword">true</span>)</div>
|
|
638
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  {</div>
|
|
639
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.insert({label, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a>++});</div>
|
|
640
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
641
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  }</div>
|
|
642
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">else</span></div>
|
|
643
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  {</div>
|
|
644
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg = <span class="stringliteral">"In line "</span> + std::to_string(lineNum) +</div>
|
|
645
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="stringliteral">" sym can not find in grammar, please correct the input dot or set --flexsymmap."</span>;</div>
|
|
646
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">SVFUtil::errMsg</a>(msg);</div>
|
|
647
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  std::cout << msg;</div>
|
|
648
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  abort();</div>
|
|
649
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  }</div>
|
|
650
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  }</div>
|
|
651
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div>
|
|
652
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  </div>
|
|
653
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  inputFile.close();</div>
|
|
654
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>;</div>
|
|
655
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> }</div>
|
|
607
656
|
</div><!-- fragment -->
|
|
608
657
|
</div>
|
|
609
658
|
</div>
|
|
@@ -662,8 +711,8 @@ template<class N , class E > </div>
|
|
|
662
711
|
</div><!-- fragment -->
|
|
663
712
|
</div>
|
|
664
713
|
</div>
|
|
665
|
-
<a id="
|
|
666
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
714
|
+
<a id="aa3fb91f78b5d9e2c0eb24e4986a5926c"></a>
|
|
715
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aa3fb91f78b5d9e2c0eb24e4986a5926c">◆ </a></span>getKindToAttrsMap()</h2>
|
|
667
716
|
|
|
668
717
|
<div class="memitem">
|
|
669
718
|
<div class="memproto">
|
|
@@ -672,7 +721,7 @@ template<class N , class E > </div>
|
|
|
672
721
|
<td class="mlabels-left">
|
|
673
722
|
<table class="memname">
|
|
674
723
|
<tr>
|
|
675
|
-
<td class="memname"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">
|
|
724
|
+
<td class="memname"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFGrammar::Kind</a>, <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a><<a class="el" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFGrammar::Attribute</a>> >& SVF::CFLGraphBuilder::getKindToAttrsMap </td>
|
|
676
725
|
<td>(</td>
|
|
677
726
|
<td class="paramname"></td><td>)</td>
|
|
678
727
|
<td></td>
|
|
@@ -687,10 +736,10 @@ template<class N , class E > </div>
|
|
|
687
736
|
|
|
688
737
|
<p>Returns a reference to the map that associates Kinds with their corresponding attributes. </p>
|
|
689
738
|
|
|
690
|
-
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#
|
|
691
|
-
<div class="fragment"><div class="line"><a name="
|
|
692
|
-
<div class="line"><a name="
|
|
693
|
-
<div class="line"><a name="
|
|
739
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#l00111">111</a> of file <a class="el" href="CFLGraphBuilder_8h_source.html">CFLGraphBuilder.h</a>.</p>
|
|
740
|
+
<div class="fragment"><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  {</div>
|
|
741
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">return</span> this-><a class="code" href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">kindToAttrsMap</a>;</div>
|
|
742
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div>
|
|
694
743
|
</div><!-- fragment -->
|
|
695
744
|
</div>
|
|
696
745
|
</div>
|
|
@@ -704,7 +753,7 @@ template<class N , class E > </div>
|
|
|
704
753
|
<td class="mlabels-left">
|
|
705
754
|
<table class="memname">
|
|
706
755
|
<tr>
|
|
707
|
-
<td class="memname"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<a class="el" href="classSVF_1_1CFLGraphBuilder.html#
|
|
756
|
+
<td class="memname"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<a class="el" href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">Kind</a>, <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>>& SVF::CFLGraphBuilder::getKindToLabelMap </td>
|
|
708
757
|
<td>(</td>
|
|
709
758
|
<td class="paramname"></td><td>)</td>
|
|
710
759
|
<td></td>
|
|
@@ -719,10 +768,10 @@ template<class N , class E > </div>
|
|
|
719
768
|
|
|
720
769
|
<p>Returns a reference to the map that associates Kinds with their corresponding string labels. </p>
|
|
721
770
|
|
|
722
|
-
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#
|
|
723
|
-
<div class="fragment"><div class="line"><a name="
|
|
724
|
-
<div class="line"><a name="
|
|
725
|
-
<div class="line"><a name="
|
|
771
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#l00105">105</a> of file <a class="el" href="CFLGraphBuilder_8h_source.html">CFLGraphBuilder.h</a>.</p>
|
|
772
|
+
<div class="fragment"><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  {</div>
|
|
773
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">return</span> this-><a class="code" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a>;</div>
|
|
774
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  }</div>
|
|
726
775
|
</div><!-- fragment -->
|
|
727
776
|
</div>
|
|
728
777
|
</div>
|
|
@@ -736,7 +785,7 @@ template<class N , class E > </div>
|
|
|
736
785
|
<td class="mlabels-left">
|
|
737
786
|
<table class="memname">
|
|
738
787
|
<tr>
|
|
739
|
-
<td class="memname"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>, <a class="el" href="classSVF_1_1CFLGraphBuilder.html#
|
|
788
|
+
<td class="memname"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>, <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">Kind</a>>& SVF::CFLGraphBuilder::getLabelToKindMap </td>
|
|
740
789
|
<td>(</td>
|
|
741
790
|
<td class="paramname"></td><td>)</td>
|
|
742
791
|
<td></td>
|
|
@@ -752,10 +801,10 @@ template<class N , class E > </div>
|
|
|
752
801
|
<p>Returns a reference to the map that associates string labels with their corresponding Kind. </p>
|
|
753
802
|
<p>Getter methods for accessing class variables </p>
|
|
754
803
|
|
|
755
|
-
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#
|
|
756
|
-
<div class="fragment"><div class="line"><a name="
|
|
757
|
-
<div class="line"><a name="
|
|
758
|
-
<div class="line"><a name="
|
|
804
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#l00099">99</a> of file <a class="el" href="CFLGraphBuilder_8h_source.html">CFLGraphBuilder.h</a>.</p>
|
|
805
|
+
<div class="fragment"><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  {</div>
|
|
806
|
+
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">return</span> this-><a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>;</div>
|
|
807
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div>
|
|
759
808
|
</div><!-- fragment -->
|
|
760
809
|
</div>
|
|
761
810
|
</div>
|
|
@@ -780,7 +829,7 @@ template<class N , class E > </div>
|
|
|
780
829
|
</table>
|
|
781
830
|
</div><div class="memdoc">
|
|
782
831
|
|
|
783
|
-
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#
|
|
832
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#l00066">66</a> of file <a class="el" href="CFLGraphBuilder_8h_source.html">CFLGraphBuilder.h</a>.</p>
|
|
784
833
|
|
|
785
834
|
</div>
|
|
786
835
|
</div>
|
|
@@ -794,7 +843,7 @@ template<class N , class E > </div>
|
|
|
794
843
|
<td class="mlabels-left">
|
|
795
844
|
<table class="memname">
|
|
796
845
|
<tr>
|
|
797
|
-
<td class="memname"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#
|
|
846
|
+
<td class="memname"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">Kind</a> SVF::CFLGraphBuilder::current</td>
|
|
798
847
|
</tr>
|
|
799
848
|
</table>
|
|
800
849
|
</td>
|
|
@@ -804,12 +853,12 @@ template<class N , class E > </div>
|
|
|
804
853
|
</table>
|
|
805
854
|
</div><div class="memdoc">
|
|
806
855
|
|
|
807
|
-
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#
|
|
856
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#l00065">65</a> of file <a class="el" href="CFLGraphBuilder_8h_source.html">CFLGraphBuilder.h</a>.</p>
|
|
808
857
|
|
|
809
858
|
</div>
|
|
810
859
|
</div>
|
|
811
|
-
<a id="
|
|
812
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
860
|
+
<a id="af34aa7ae71e100d8bbe7c1b17c1f0068"></a>
|
|
861
|
+
<h2 class="memtitle"><span class="permalink"><a href="#af34aa7ae71e100d8bbe7c1b17c1f0068">◆ </a></span>kindToAttrsMap</h2>
|
|
813
862
|
|
|
814
863
|
<div class="memitem">
|
|
815
864
|
<div class="memproto">
|
|
@@ -818,7 +867,7 @@ template<class N , class E > </div>
|
|
|
818
867
|
<td class="mlabels-left">
|
|
819
868
|
<table class="memname">
|
|
820
869
|
<tr>
|
|
821
|
-
<td class="memname"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">
|
|
870
|
+
<td class="memname"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFGrammar::Kind</a>, <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a><<a class="el" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFGrammar::Attribute</a>> > SVF::CFLGraphBuilder::kindToAttrsMap</td>
|
|
822
871
|
</tr>
|
|
823
872
|
</table>
|
|
824
873
|
</td>
|
|
@@ -830,7 +879,7 @@ template<class N , class E > </div>
|
|
|
830
879
|
|
|
831
880
|
<p>Map to maintain attributes associated with each kind. </p>
|
|
832
881
|
|
|
833
|
-
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#
|
|
882
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#l00063">63</a> of file <a class="el" href="CFLGraphBuilder_8h_source.html">CFLGraphBuilder.h</a>.</p>
|
|
834
883
|
|
|
835
884
|
</div>
|
|
836
885
|
</div>
|
|
@@ -844,7 +893,7 @@ template<class N , class E > </div>
|
|
|
844
893
|
<td class="mlabels-left">
|
|
845
894
|
<table class="memname">
|
|
846
895
|
<tr>
|
|
847
|
-
<td class="memname"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<a class="el" href="classSVF_1_1CFLGraphBuilder.html#
|
|
896
|
+
<td class="memname"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<a class="el" href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">Kind</a>, <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>> SVF::CFLGraphBuilder::kindToLabelMap</td>
|
|
848
897
|
</tr>
|
|
849
898
|
</table>
|
|
850
899
|
</td>
|
|
@@ -854,7 +903,7 @@ template<class N , class E > </div>
|
|
|
854
903
|
</table>
|
|
855
904
|
</div><div class="memdoc">
|
|
856
905
|
|
|
857
|
-
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#
|
|
906
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#l00060">60</a> of file <a class="el" href="CFLGraphBuilder_8h_source.html">CFLGraphBuilder.h</a>.</p>
|
|
858
907
|
|
|
859
908
|
</div>
|
|
860
909
|
</div>
|
|
@@ -868,7 +917,7 @@ template<class N , class E > </div>
|
|
|
868
917
|
<td class="mlabels-left">
|
|
869
918
|
<table class="memname">
|
|
870
919
|
<tr>
|
|
871
|
-
<td class="memname"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>, <a class="el" href="classSVF_1_1CFLGraphBuilder.html#
|
|
920
|
+
<td class="memname"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>, <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">Kind</a>> SVF::CFLGraphBuilder::labelToKindMap</td>
|
|
872
921
|
</tr>
|
|
873
922
|
</table>
|
|
874
923
|
</td>
|
|
@@ -880,7 +929,7 @@ template<class N , class E > </div>
|
|
|
880
929
|
|
|
881
930
|
<p>Maps to maintain mapping between labels and kinds. </p>
|
|
882
931
|
|
|
883
|
-
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#
|
|
932
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#l00059">59</a> of file <a class="el" href="CFLGraphBuilder_8h_source.html">CFLGraphBuilder.h</a>.</p>
|
|
884
933
|
|
|
885
934
|
</div>
|
|
886
935
|
</div>
|
|
@@ -890,24 +939,28 @@ template<class N , class E > </div>
|
|
|
890
939
|
</ul>
|
|
891
940
|
</div><!-- contents -->
|
|
892
941
|
<div class="ttc" id="aclassSVF_1_1Options_html_a8e22c3bca5ee0e4e7d90e857a5ea8031"><div class="ttname"><a href="classSVF_1_1Options.html#a8e22c3bca5ee0e4e7d90e857a5ea8031">SVF::Options::FlexSymMap</a></div><div class="ttdeci">static const Option< bool > FlexSymMap</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00265">Options.h:265</a></div></div>
|
|
893
|
-
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_aad408d6ecb776fd763c9b9221a1bed18"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">SVF::CFLGraphBuilder::current</a></div><div class="ttdeci">Kind current</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#
|
|
942
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_aad408d6ecb776fd763c9b9221a1bed18"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">SVF::CFLGraphBuilder::current</a></div><div class="ttdeci">Kind current</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00065">CFLGraphBuilder.h:65</a></div></div>
|
|
894
943
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a7655b13bbfe720ca2b8a25e0a72528e6"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(const 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>
|
|
895
944
|
<div class="ttc" id="aCommandLine_8h_html_a2429346d37bd4c40889bd7c6d319d9da"><div class="ttname"><a href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00018">CommandLine.h:18</a></div></div>
|
|
896
945
|
<div class="ttc" id="aclassSVF_1_1CFLGraph_html_a9eea8083dbeaf898948595b1d75cfee2"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">SVF::CFLGraph::addCFLEdge</a></div><div class="ttdeci">virtual const CFLEdge * addCFLEdge(CFLNode *src, CFLNode *dst, CFLEdge::GEdgeFlag label)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8cpp_source.html#l00047">CFLGraph.cpp:47</a></div></div>
|
|
946
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a1e3b5220f536443019ea25262169498a"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a1e3b5220f536443019ea25262169498a">SVF::CFLGraphBuilder::buildFromDot</a></div><div class="ttdeci">CFLGraph * buildFromDot(std::string filename, GrammarBase *grammar, BuildDirection direction=BuildDirection::plain)</div><div class="ttdoc">Method to build a CFL graph from a Dot file.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00196">CFLGraphBuilder.cpp:196</a></div></div>
|
|
947
|
+
<div class="ttc" id="anamespaceSVF_html_a165cd8904ba9f1ae6e0fa1752ba78caaaf3515b032dca85081a3d653d0cb9b995"><div class="ttname"><a href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caaaf3515b032dca85081a3d653d0cb9b995">SVF::BuildDirection::bidirection</a></div><div class="ttdeci">@ bidirection</div></div>
|
|
897
948
|
<div class="ttc" id="acJSON_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>
|
|
898
|
-
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a1ecf9cad8707ba07d3e44624ea273f2f"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">SVF::CFLGraphBuilder::labelToKindMap</a></div><div class="ttdeci">Map< std::string, Kind > labelToKindMap</div><div class="ttdoc">Maps to maintain mapping between labels and kinds.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#
|
|
949
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a1ecf9cad8707ba07d3e44624ea273f2f"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">SVF::CFLGraphBuilder::labelToKindMap</a></div><div class="ttdeci">Map< std::string, Kind > labelToKindMap</div><div class="ttdoc">Maps to maintain mapping between labels and kinds.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00059">CFLGraphBuilder.h:59</a></div></div>
|
|
899
950
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00406">GenericGraph.h:406</a></div></div>
|
|
900
|
-
<div class="ttc" id="aclassSVF_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="
|
|
901
|
-
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_af034366ce280120e5cd1a5685894e9ac"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">SVF::CFLGraphBuilder::cflGraph</a></div><div class="ttdeci">CFLGraph * cflGraph</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#
|
|
951
|
+
<div class="ttc" id="aclassSVF_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="CFGrammar_8h_source.html#l00039">CFGrammar.h:39</a></div></div>
|
|
952
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_af034366ce280120e5cd1a5685894e9ac"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">SVF::CFLGraphBuilder::cflGraph</a></div><div class="ttdeci">CFLGraph * cflGraph</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00066">CFLGraphBuilder.h:66</a></div></div>
|
|
902
953
|
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_aec30ce1ad7be5ac2e41f73ddba356fd9"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#aec30ce1ad7be5ac2e41f73ddba356fd9">SVF::CFLGraphBuilder::addGNode</a></div><div class="ttdeci">CFLNode * addGNode(u32_t NodeID)</div><div class="ttdoc">add src and dst node from file</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00082">CFLGraphBuilder.cpp:82</a></div></div>
|
|
954
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_aa1a24c858e46b68e9f6a99668d880f6a"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#aa1a24c858e46b68e9f6a99668d880f6a">SVF::CFLGraphBuilder::buildFromJson</a></div><div class="ttdeci">CFLGraph * buildFromJson(std::string filename, GrammarBase *grammar, BuildDirection direction=BuildDirection::plain)</div><div class="ttdoc">Method to build a CFL graph from a Json file.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00244">CFLGraphBuilder.cpp:244</a></div></div>
|
|
903
955
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a6885064afa211958af7b73f0233284e5"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">SVF::GenericGraph::hasGNode</a></div><div class="ttdeci">bool hasGNode(NodeID id) const</div><div class="ttdoc">Has a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00414">GenericGraph.h:414</a></div></div>
|
|
904
|
-
<div class="ttc" id="
|
|
956
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_af34aa7ae71e100d8bbe7c1b17c1f0068"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">SVF::CFLGraphBuilder::kindToAttrsMap</a></div><div class="ttdeci">Map< CFGrammar::Kind, Set< CFGrammar::Attribute > > kindToAttrsMap</div><div class="ttdoc">Map to maintain attributes associated with each kind.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00063">CFLGraphBuilder.h:63</a></div></div>
|
|
905
957
|
<div class="ttc" id="anamespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
906
958
|
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a01e5d31c43d40f8a518aa8d371b085d8"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a01e5d31c43d40f8a518aa8d371b085d8">SVF::CFLGraphBuilder::buildlabelToKindMap</a></div><div class="ttdeci">void buildlabelToKindMap(GrammarBase *grammar)</div><div class="ttdoc">build label and kind connect from the grammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00054">CFLGraphBuilder.cpp:54</a></div></div>
|
|
907
959
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ae18227f257c9881541b84ca186680dfd"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ae18227f257c9881541b84ca186680dfd">SVF::SVFUtil::split</a></div><div class="ttdeci">std::vector< std::string > split(const std::string &s, char separator)</div><div class="ttdoc">Split into two substrings around the first occurrence of a separator string.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00218">SVFUtil.h:218</a></div></div>
|
|
908
960
|
<div class="ttc" id="aclassSVF_1_1CFLGraph_html_a58b944d0f2c11868e17223acdb35f82c"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#a58b944d0f2c11868e17223acdb35f82c">SVF::CFLGraph::addCFLNode</a></div><div class="ttdeci">virtual void addCFLNode(NodeID id, CFLNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8cpp_source.html#l00042">CFLGraph.cpp:42</a></div></div>
|
|
909
|
-
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a93b41c2f0eca82e6eaf49895b2b13a1e"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">SVF::CFLGraphBuilder::kindToLabelMap</a></div><div class="ttdeci">Map< Kind, std::string > kindToLabelMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#
|
|
961
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a93b41c2f0eca82e6eaf49895b2b13a1e"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">SVF::CFLGraphBuilder::kindToLabelMap</a></div><div class="ttdeci">Map< Kind, std::string > kindToLabelMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00060">CFLGraphBuilder.h:60</a></div></div>
|
|
910
962
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00056">SVFUtil.h:56</a></div></div>
|
|
963
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_aea046c5f1971069a50100afe7ffed89f"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#aea046c5f1971069a50100afe7ffed89f">SVF::CFLGraphBuilder::buildFromText</a></div><div class="ttdeci">CFLGraph * buildFromText(std::string fileName, GrammarBase *grammar, BuildDirection direction=BuildDirection::plain)</div><div class="ttdoc">Method to build a CFL graph from a Text file.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00142">CFLGraphBuilder.cpp:142</a></div></div>
|
|
911
964
|
<!-- start footer part -->
|
|
912
965
|
<hr class="footer"/><address class="footer"><small>
|
|
913
966
|
Generated by  <a href="http://www.doxygen.org/index.html">
|