cfpq_data.grammars.generators.java_points_to_grammar_from_graph#

java_points_to_grammar_from_graph(graph: MultiDiGraph, *, start_symbol: Variable = Variable(S)) CFG[source]#

Returns a Java Points-to grammar that generates a language for the field-sensitive analysis of Java programs [1] with fields corresponding to the load and store edge labels of the given graph.

Parameters:
  • graph (nx.MultiDiGraph) -- The graph to be analyzed using the grammar.

  • start_symbol (Variable) -- Start symbol of the grammar.

Examples

>>> from cfpq_data import *
>>> path = download("avrora")
>>> g = cfpq_data.graph_from_csv(path)
>>> cfg = java_points_to_grammar_from_graph(g)
>>> len(cfg.productions)
1723
Returns:

cfg -- Java Points-to context-free grammar.

Return type:

CFG

References