Skip to main content

module lang::php::analysis::includes::IncludeGraph

rascal-0.43.0
org.rascalmpl.php-analysis-0.3.6

Usage​

import lang::php::analysis::includes::IncludeGraph;

Dependencies​

import lang::php::ast::AbstractSyntax;
import lang::php::ast::System;
import lang::php::stats::Stats;
import lang::php::util::LocUtils;
import lang::php::analysis::evaluators::AlgebraicSimplification;
import lang::php::analysis::evaluators::SimulateCalls;
import lang::php::analysis::includes::LibraryIncludes;
import analysis::graphs::Graph;
import String;
import Set;

data IncludeGraphNode​

data IncludeGraphNode  
= igNode(str fileName, loc fileLoc)
| libNode(str libName, str libPath)
| unknownNode()
| multiNode(set[IncludeGraphNode] alts)
| anyNode()
;

data IncludeGraphEdge​

data IncludeGraphEdge  
= igEdge(IncludeGraphNode source, IncludeGraphNode target, Expr includeExpr)
;

data IncludeGraph​

data IncludeGraph  
= igGraph(map[loc,IncludeGraphNode] nodes, set[IncludeGraphEdge] edges)
;

function getEdgeTargets​

set[loc] getEdgeTargets(IncludeGraph igraph, IncludeGraphEdge edge)

function extractIncludeGraph​

IncludeGraph extractIncludeGraph(System scripts, loc productRoot, set[LibItem] libraries)

function collapseToGraph​

Graph[str] collapseToGraph(IncludeGraph ig)

function collapseToLocGraph​

Graph[loc] collapseToLocGraph(IncludeGraph ig)

function collapseToNodeGraph​

Graph[IncludeGraphNode] collapseToNodeGraph(IncludeGraph ig)

function nodeForLoc​

IncludeGraphNode nodeForLoc(IncludeGraph ig, loc l)