module lang::php::stats::Unfriendly
rascal-0.40.17
php-analysis-0.2.4
Usage
import lang::php::stats::Unfriendly;
Source code
http://github.com/cwi-swat/php-analysis/blob/main/src/main/rascal/lang/php/stats/Unfriendly.rsc
Dependencies
import List;
import String;
import Set;
import Relation;
import IO;
import ValueIO;
import Map;
import Node;
import Type;
import util::Math;
import Exception;
import lang::php::util::Utils;
import lang::php::stats::Stats;
import lang::php::ast::System;
import lang::php::util::Corpus;
import lang::php::ast::AbstractSyntax;
import lang::php::util::Config;
import lang::php::analysis::signatures::Summaries;
import lang::php::analysis::includes::IncludeGraph;
import lang::php::analysis::NamePaths;
import lang::csv::IO;
alias VVUType
rel[int id, str product, str path, int line, str derivableNames, str assignsThrough, str madeGlobal, str usesLiteralPattern, str usesForeach, str usesSwitch, str usesConditional, str derivableWithAnnotations, str notes]
function varVarUses
VVUType varVarUses(loc fileLoc = baseLoc + "/extract/csvs/VarVarUses.csv")
alias ExprsType
rel[str product, str version, int array, int fetchArrayDim, int fetchClassConst, int assign, int assignWithBitwiseAnd, int assignWithBitwiseOr, int assignWithBitwiseXor, int assignWithConcat, int assignWithDiv, int assignWithMinus, int assignWithMod, int assignWithMul, int assignWithPlus, int assignWithRightShift, int assignWithLeftShift, int listAssign, int refAssign, int binOpBitwiseAnd, int binOpBitwiseOr, int binOpBitwiseXor, int binOpConcat, int binOpDev, int binOpMinus, int binOpMod, int binOpMul, int binOpPlus, int binOpRightShift, int binOpLeftShift, int binOpBooleanAnd, int binOpBooleanOr, int binOpGt, int binOpGeq, int binOpLogicalAnd, int binOpLogicalOr, int binOpLogicalXor, int binOpNotEqual, int binOpNotIdentical, int binOpLt, int binOpLeq, int binOpEqual, int binOpIdentical, int unaryOpBooleanNot, int unaryOpBitwiseNot, int unaryOpPostDec, int unaryOpPreDec, int unaryOpPostInc, int unaryOpPreInc, int unaryOpPlus, int unaryOpMinus, int new, int castToInt, int castToBool, int castToFloat, int castToString, int castToArray, int castToObject, int castToUnset, int clone, int closure, int fetchConst, int empty, int suppress, int eval, int exit, int call, int methodCall, int staticCall, int include, int instanceOf, int isSet, int print, int propertyFetch, int shellExec, int ternary, int fetchStaticProperty, int scalar, int var, int \list]
function expressionCounts
ExprsType expressionCounts(loc fileLoc = baseLoc + "/extract/csvs/exprs.csv")
alias FeatsType
rel[str product, str version, str file, int \break, int \classDef, int \const, int \continue, int \declare, int \do, int \echo, int \expressionStatementChainRule, int \for, int \foreach, int \functionDef, int \global, int \goto, int \haltCompiler, int \if, int \inlineHTML, int \interfaceDef, int \traitDef, int \label, int \namespace, int \return, int \static, int \switch, int \throw, int \tryCatch, int \unset, int \use, int \while, int \array, int \fetchArrayDim, int \fetchClassConst, int \assign, int \assignWithOperationBitwiseAnd, int \assignWithOperationBitwiseOr, int \assignWithOperationBitwiseXor, int \assignWithOperationConcat, int \assignWithOperationDiv, int \assignWithOperationMinus, int \assignWithOperationMod, int \assignWithOperationMul, int \assignWithOperationPlus, int \assignWithOperationRightShift, int \assignWithOperationLeftShift, int \listAssign, int \refAssign, int \binaryOperationBitwiseAnd, int \binaryOperationBitwiseOr, int \binaryOperationBitwiseXor, int \binaryOperationConcat, int \binaryOperationDiv, int \binaryOperationMinus, int \binaryOperationMod, int \binaryOperationMul, int \binaryOperationPlus, int \binaryOperationRightShift, int \binaryOperationLeftShift, int \binaryOperationBooleanAnd, int \binaryOperationBooleanOr, int \binaryOperationGt, int \binaryOperationGeq, int \binaryOperationLogicalAnd, int \binaryOperationLogicalOr, int \binaryOperationLogicalXor, int \binaryOperationNotEqual, int \binaryOperationNotIdentical, int \binaryOperationLt, int \binaryOperationLeq, int \binaryOperationEqual, int \binaryOperationIdentical, int \unaryOperationBooleanNot, int \unaryOperationBitwiseNot, int \unaryOperationPostDec, int \unaryOperationPreDec, int \unaryOperationPostInc, int \unaryOperationPreInc, int \unaryOperationUnaryPlus, int \unaryOperationUnaryMinus, int \new, int \castToInt, int \castToBool, int \castToFloat, int \castToString, int \castToArray, int \castToObject, int \castToUnset, int \clone, int \closure, int \fetchConst, int \empty, int \suppress, int \eval, int \exit, int \call, int \methodCall, int \staticCall, int \include, int \instanceOf, int \isSet, int \print, int \propertyFetch, int \shellExec, int \ternary, int \fetchStaticProperty, int \scalar, int \var, int \list, int \propertyDef, int \classConstDef, int \methodDef, int \traitUse]
function getFeats
FeatsType getFeats(loc fileLoc = baseLoc + "/extract/csvs/FeaturesByFile.csv")
alias LinesType
rel[str product, str version, str file, int phpLines]
function getLines
LinesType getLines(loc fileLoc = baseLoc + "/extract/csvs/linesPerFile.csv")
alias VersionsType
rel[str product, str version, str releaseDate, str requiredPHPVersion, str comments]
function getVersions
VersionsType getVersions(loc fileLoc = baseLoc + "/extract/csvs/Versions.csv")
data QueryResult
data QueryResult
= exprResult(loc l, Expr e)
;
alias QueryResults
list[QueryResult]
function mygini
real mygini(lrel[num observation,int frequency] values)
real mygini(list[num] dist)
function getVVUses
QueryResults getVVUses(str product, str version)
rel[str p, str v, QueryResult qr] getVVUses(Corpus corpus)
function getVVUsesAsList
lrel[str p, str v, QueryResult qr] getVVUsesAsList(Corpus corpus)
function getVVNews
QueryResults getVVNews(str product, str version)
function getVVNewsAsList
lrel[str p, str v, QueryResult qr] getVVNewsAsList(Corpus corpus)
function getVVCalls
QueryResults getVVCalls(str product, str version)
function getVVCallsAsList
lrel[str p, str v, QueryResult qr] getVVCallsAsList(Corpus corpus)
function getVVMethodCalls
QueryResults getVVMethodCalls(str product, str version)
function getVVMethodCallsAsList
lrel[str p, str v, QueryResult qr] getVVMethodCallsAsList(Corpus corpus)
function getVVPropertyRefs
QueryResults getVVPropertyRefs(str product, str version)
function getVVPropertyRefsAsList
lrel[str p, str v, QueryResult qr] getVVPropertyRefsAsList(Corpus corpus)
function getVVClassConsts
QueryResults getVVClassConsts(str product, str version)
function getVVClassConstsAsList
lrel[str p, str v, QueryResult qr] getVVClassConstsAsList(Corpus corpus)
function getVVStaticCalls
QueryResults getVVStaticCalls(str product, str version)
function getVVStaticCallsAsList
lrel[str p, str v, QueryResult qr] getVVStaticCallsAsList(Corpus corpus)
function getVVStaticCallTargets
QueryResults getVVStaticCallTargets(str product, str version)
function getVVStaticCallTargetsAsList
lrel[str p, str v, QueryResult qr] getVVStaticCallTargetsAsList(Corpus corpus)
function getVVStaticPropNames
QueryResults getVVStaticPropNames(str product, str version)
function getVVStaticPropNamesAsList
lrel[str p, str v, QueryResult qr] getVVStaticPropNamesAsList(Corpus corpus)
function getVVStaticPropTargets
QueryResults getVVStaticPropTargets(str product, str version)
function getVVStaticPropTargetsAsList
lrel[str p, str v, QueryResult qr] getVVStaticPropTargetsAsList(Corpus corpus)
data VVInfo
data VVInfo
= vvInfo(
lrel[str p, str v, QueryResult qr] vvuses,
lrel[str p, str v, QueryResult qr] vvcalls,
lrel[str p, str v, QueryResult qr] vvmcalls,
lrel[str p, str v, QueryResult qr] vvnews,
lrel[str p, str v, QueryResult qr] vvprops,
lrel[str p, str v, QueryResult qr] vvcconsts,
lrel[str p, str v, QueryResult qr] vvscalls,
lrel[str p, str v, QueryResult qr] vvstargets,
lrel[str p, str v, QueryResult qr] vvsprops,
lrel[str p, str v, QueryResult qr] vvsptargets)
;
function toVVInfo
VVInfo toVVInfo(tuple[lrel[str p, str v, QueryResult qr] vvuses,
lrel[str p, str v, QueryResult qr] vvcalls,
lrel[str p, str v, QueryResult qr] vvmcalls,
lrel[str p, str v, QueryResult qr] vvnews,
lrel[str p, str v, QueryResult qr] vvprops,
lrel[str p, str v, QueryResult qr] vvcconsts,
lrel[str p, str v, QueryResult qr] vvscalls,
lrel[str p, str v, QueryResult qr] vvstargets,
lrel[str p, str v, QueryResult qr] vvsprops,
lrel[str p, str v, QueryResult qr] vvsptargets] input)
function getAllVV
tuple[lrel[str p, str v, QueryResult qr] vvuses,
lrel[str p, str v, QueryResult qr] vvcalls,
lrel[str p, str v, QueryResult qr] vvmcalls,
lrel[str p, str v, QueryResult qr] vvnews,
lrel[str p, str v, QueryResult qr] vvprops,
lrel[str p, str v, QueryResult qr] vvcconsts,
lrel[str p, str v, QueryResult qr] vvscalls,
lrel[str p, str v, QueryResult qr] vvstargets,
lrel[str p, str v, QueryResult qr] vvsprops,
lrel[str p, str v, QueryResult qr] vvsptargets] getAllVV(Corpus corpus)
tuple[lrel[str p, str v, QueryResult qr] vvuses,
lrel[str p, str v, QueryResult qr] vvcalls,
lrel[str p, str v, QueryResult qr] vvmcalls,
lrel[str p, str v, QueryResult qr] vvnews,
lrel[str p, str v, QueryResult qr] vvprops,
lrel[str p, str v, QueryResult qr] vvcconsts,
lrel[str p, str v, QueryResult qr] vvscalls,
lrel[str p, str v, QueryResult qr] vvstargets,
lrel[str p, str v, QueryResult qr] vvsprops,
lrel[str p, str v, QueryResult qr] vvsptargets] getAllVV(str product, str version, System ptmap)
function showOrderedRel
lrel[str p, str path, int line] showOrderedRel(rel[str p, str v, QueryResult qr] res)
function writeOrderedRel
void writeOrderedRel(rel[str p, str v, QueryResult qr] res, loc writeLoc)
function varVarUsesInfo
map[str,tuple[int totalCount, int derivableCount]] varVarUsesInfo(Corpus corpus)
function showUsageCounts
void showUsageCounts(Corpus corpus, lrel[str p, str v, QueryResult qr] res)
function showFileInfo
void showFileInfo(Corpus corpus, lrel[str p, str v, QueryResult qr] res)
function createSubfloat
str createSubfloat(lrel[str p, str v, QueryResult qr] qrlist, str caption, str label)
function showVVInfoAsLatex
str showVVInfoAsLatex(lrel[str p, str v, QueryResult qr] vvuses,
lrel[str p, str v, QueryResult qr] vvcalls,
lrel[str p, str v, QueryResult qr] vvmcalls,
lrel[str p, str v, QueryResult qr] vvnews,
lrel[str p, str v, QueryResult qr] vvprops,
lrel[str p, str v, QueryResult qr] vvall,
map[str,set[loc]] transitiveUses, Corpus corpus)
function saveVVFiles
void saveVVFiles(lrel[str p, str v, QueryResult qr] vvuses,
lrel[str p, str v, QueryResult qr] vvcalls,
lrel[str p, str v, QueryResult qr] vvmcalls,
lrel[str p, str v, QueryResult qr] vvnews,
lrel[str p, str v, QueryResult qr] vvprops,
lrel[str p, str v, QueryResult qr] vvcconsts,
lrel[str p, str v, QueryResult qr] vvscalls,
lrel[str p, str v, QueryResult qr] vvstargets,
lrel[str p, str v, QueryResult qr] vvsprops,
lrel[str p, str v, QueryResult qr] vvsptargets
)
function loadVVFiles
tuple[lrel[str p, str v, QueryResult qr] vvuses,
lrel[str p, str v, QueryResult qr] vvcalls,
lrel[str p, str v, QueryResult qr] vvmcalls,
lrel[str p, str v, QueryResult qr] vvnews,
lrel[str p, str v, QueryResult qr] vvprops,
lrel[str p, str v, QueryResult qr] vvcconsts,
lrel[str p, str v, QueryResult qr] vvscalls,
lrel[str p, str v, QueryResult qr] vvstargets,
lrel[str p, str v, QueryResult qr] vvsprops,
lrel[str p, str v, QueryResult qr] vvsptargets] loadVVFiles()
function generateTableFiles
void generateTableFiles(lrel[str p, str v, QueryResult qr] vvuses,
lrel[str p, str v, QueryResult qr] vvcalls,
lrel[str p, str v, QueryResult qr] vvmcalls,
lrel[str p, str v, QueryResult qr] vvnews,
lrel[str p, str v, QueryResult qr] vvprops,
lrel[str p, str v, QueryResult qr] vvcconsts,
lrel[str p, str v, QueryResult qr] vvscalls,
lrel[str p, str v, QueryResult qr] vvstargets,
lrel[str p, str v, QueryResult qr] vvsprops,
lrel[str p, str v, QueryResult qr] vvsptargets,
map[str,set[loc]] transitiveUses,
Corpus corpus
)
function resultsToGini
map[str p, real gc] resultsToGini(lrel[str p, str v, QueryResult qr] res)
alias ICLists
map[tuple[str product, str version] sysinfo, tuple[lrel[loc fileloc, Expr call] initial, lrel[loc fileloc, Expr call] unresolved] hits]
function saveForLater
void saveForLater(ICLists res)
function reload
ICLists reload()
alias IncludesCountTuple
tuple[int includeCount, int fileCount, real giniCoefficient]
alias IncludesCountBeforeAfterTuple
tuple[IncludesCountTuple initial, IncludesCountTuple unresolved]
alias ICResult
map[tuple[str product, str version] sysinfo, IncludesCountBeforeAfterTuple counts]
function calculateSystemIncludesCounts
IncludesCountBeforeAfterTuple calculateSystemIncludesCounts(System sys, rel[loc,loc,loc] resolved)
function includesCountsExists
bool includesCountsExists()
function saveIncludesCounts
void saveIncludesCounts(ICResult res)
function loadIncludesCounts
ICResult loadIncludesCounts()
function includeCounts
map[tuple[str p, str v], int] includeCounts(Corpus corpus)
function saveTotalIncludes
void saveTotalIncludes(map[tuple[str p, str v], int] ti)
function loadTotalIncludes
map[tuple[str p, str v], int] loadTotalIncludes()
function generateIncludeCountsTable
str generateIncludeCountsTable(ICResult counts, map[tuple[str p, str v], int] totalIncludes)
str generateIncludeCountsTable(ICResult counts, map[tuple[str p, str v], int] totalIncludes, str caption, str texlabel)
function writeIncludeCountsTable
void writeIncludeCountsTable(ICResult counts, map[tuple[str p, str v], int] totalIncludes)
alias MMResult
map[tuple[str p, str v], tuple[list[ClassItem] sets, list[ClassItem] gets, list[ClassItem] isSets, list[ClassItem] unsets, list[ClassItem] calls, list[ClassItem] staticCalls]]
function magicMethodUses
MMResult magicMethodUses(Corpus corpus)
function magicMethodCounts
str magicMethodCounts(Corpus corpus, MMResult res, map[str,set[loc]] transitiveUses)
alias HistInfo
rel[str p, str file, int variableVariables, int variableCalls, int variableMethodCalls, int variableNews, int variableProperties, int variableClassConsts, int variableStaticCalls, int variableStaticTargets, int variableStaticProperties, int variableStaticPropertyTargets]
function calculateHistData
HistInfo calculateHistData(lrel[str p, str v, QueryResult qr] vvuses,
lrel[str p, str v, QueryResult qr] vvcalls,
lrel[str p, str v, QueryResult qr] vvmcalls,
lrel[str p, str v, QueryResult qr] vvnews,
lrel[str p, str v, QueryResult qr] vvprops,
lrel[str p, str v, QueryResult qr] vvcconsts,
lrel[str p, str v, QueryResult qr] vvscalls,
lrel[str p, str v, QueryResult qr] vvstargets,
lrel[str p, str v, QueryResult qr] vvsprops,
lrel[str p, str v, QueryResult qr] vvsptargets)
function writeHistInfo
void writeHistInfo(loc l, HistInfo h)
function readHistInfo
HistInfo readHistInfo(loc l)
function writeHistInfoCSV
void writeHistInfoCSV(HistInfo h)
function squiglies
str squiglies(HistInfo hi)
function squigly
str squigly(rel[str, int] counts, str label)
function squiglyRound
str squiglyRound(rel[str, int] counts, str label)
function squigly2
str squigly2(rel[str, int] counts, str label)
function squigly3
str squigly3(rel[str, int] counts, str label, map[str,str] printingGroups)
function labeledSquigly
str labeledSquigly(rel[str, int] counts, str label)
function featureCountsPerFile
void featureCountsPerFile(Corpus corpus)
alias FMap
map[str file,tuple[int \break,int \classDef,int \const,int \continue,int \declare,int \do,int \echo,int \expressionStatementChainRule,int \for,int \foreach,int \functionDef,int \global,int \goto,int \haltCompiler,int \if,int \inlineHTML,int \interfaceDef,int \traitDef,int \label,int \namespace,int \return,int \static,int \switch,int \throw,int \tryCatch,int \unset,int \use,int \while,int \array,int \fetchArrayDim,int \fetchClassConst,int \assign,int \assignWithOperationBitwiseAnd,int \assignWithOperationBitwiseOr,int \assignWithOperationBitwiseXor,int \assignWithOperationConcat,int \assignWithOperationDiv,int \assignWithOperationMinus,int \assignWithOperationMod,int \assignWithOperationMul,int \assignWithOperationPlus,int \assignWithOperationRightShift,int \assignWithOperationLeftShift,int \listAssign,int \refAssign,int \binaryOperationBitwiseAnd,int \binaryOperationBitwiseOr,int \binaryOperationBitwiseXor,int \binaryOperationConcat,int \binaryOperationDiv,int \binaryOperationMinus,int \binaryOperationMod,int \binaryOperationMul,int \binaryOperationPlus,int \binaryOperationRightShift,int \binaryOperationLeftShift,int \binaryOperationBooleanAnd,int \binaryOperationBooleanOr,int \binaryOperationGt,int \binaryOperationGeq,int \binaryOperationLogicalAnd,int \binaryOperationLogicalOr,int \binaryOperationLogicalXor,int \binaryOperationNotEqual,int \binaryOperationNotIdentical,int \binaryOperationLt,int \binaryOperationLeq,int \binaryOperationEqual,int \binaryOperationIdentical,int \unaryOperationBooleanNot,int \unaryOperationBitwiseNot,int \unaryOperationPostDec,int \unaryOperationPreDec,int \unaryOperationPostInc,int \unaryOperationPreInc,int \unaryOperationUnaryPlus,int \unaryOperationUnaryMinus,int \new,int \castToInt,int \castToBool,int \castToFloat,int \castToString,int \castToArray,int \castToObject,int \castToUnset,int \clone,int \closure,int \fetchConst,int \empty,int \suppress,int \eval,int \exit,int \call,int \methodCall,int \staticCall,int \include,int \instanceOf,int \isSet,int \print,int \propertyFetch,int \shellExec,int \ternary,int \fetchStaticProperty,int \scalar,int \var,int \list,int \propertyDef,int \classConstDef,int \methodDef,int \traitUse] counts]
function saveFeatsMap
void saveFeatsMap(FMap m)
function loadFeatsMap
FMap loadFeatsMap()
function featsMapExists
bool featsMapExists()
function getFeatureGroups
map[str,list[str]] getFeatureGroups()
function groupsTable
str groupsTable(set[str] notIn80, set[str] notIn90, set[str] notIn100)
str groupsTable()
function getFeatureLabels
list[str] getFeatureLabels()
function generalFeatureSquiglies
str generalFeatureSquiglies(FMap featsMap)
function shortLabel
str shortLabel(str l)
function fileSizesHistogram
str fileSizesHistogram(LinesType ls)
function cumulative
map[int,int] cumulative(map[int bucket,int frequency] dist)
function almostAll
tuple[int threshold, int after] almostAll(map[int bucket, int cumulativeFrequency] dist)
function main
int main()
data FeatureNode
data FeatureNode (set[str] files={}, set[str] transFiles={}, real percent=0.0)
= featureNode(set[str] features)
| synthNode(set[str] features)
;
alias FeatureLattice
rel[FeatureNode,FeatureNode]
function buildFeatureLattice
FeatureLattice buildFeatureLattice(map[int,set[FeatureNode]] nodesBySize, FeatureNode bottomNode, int totalFiles)
function getFMap
FMap getFMap()
function calculateFeatureLattice
FeatureLattice calculateFeatureLattice(FMap fmap)
function calculateTransitiveFiles
FeatureLattice calculateTransitiveFiles(FeatureLattice lattice, FeatureNode top, int totalFiles)
function minimumFeaturesForPercent
tuple[set[FeatureNode],set[str],int] minimumFeaturesForPercent(FMap fmap, FeatureLattice lattice, int targetPercent)
alias CoverageMap
map[int,set[str]]
function minimumFeaturesForPercent2
CoverageMap minimumFeaturesForPercent2(FMap fmap, FeatureLattice lattice)
function featuresForPercents
CoverageMap featuresForPercents(FMap fmap, FeatureLattice lattice, list[int] percents)
function featuresForAllPercents
CoverageMap featuresForAllPercents(FMap fmap, FeatureLattice lattice)
function saveCoverageMap
void saveCoverageMap(CoverageMap coverageMap)
function loadCoverageMap
CoverageMap loadCoverageMap()
function coverageMapExists
bool coverageMapExists()
function saveFeatureLattice
void saveFeatureLattice(FeatureLattice fl)
function loadFeatureLattice
FeatureLattice loadFeatureLattice()
function featureLatticeExists
bool featureLatticeExists()
function coverageGraph
str coverageGraph(CoverageMap coverageMap)
function vvUsagePatternsTable
str vvUsagePatternsTable(Corpus corpus)
function getVVLocs
set[loc] getVVLocs(lrel[str p, str v, QueryResult qr] vv)
set[loc] getVVLocs(str p, str v, lrel[str p, str v, QueryResult qr] vv)
function calculateFeatureTrans
set[loc] calculateFeatureTrans(rel[loc,loc,loc] includes, set[loc] featureLocs)
Given an includes graph and a set of files, return these files plus the files that (transitively) import them.
function calculateVVTransIncludes
map[str,set[loc]] calculateVVTransIncludes(
lrel[str p, str v, QueryResult qr] vvuses,
lrel[str p, str v, QueryResult qr] vvcalls,
lrel[str p, str v, QueryResult qr] vvmcalls,
lrel[str p, str v, QueryResult qr] vvnews,
lrel[str p, str v, QueryResult qr] vvprops,
lrel[str p, str v, QueryResult qr] vvcconsts,
lrel[str p, str v, QueryResult qr] vvscalls,
lrel[str p, str v, QueryResult qr] vvstargets,
lrel[str p, str v, QueryResult qr] vvsprops,
lrel[str p, str v, QueryResult qr] vvsptargets,
Corpus corpus,
map[tuple[str p, str v], rel[loc,loc,loc]] includes)
function calculateMMTransIncludes
map[str,set[loc]] calculateMMTransIncludes(Corpus corpus, MMResult mmr, map[tuple[str p, str v], rel[loc,loc,loc]] includes)
function loadBinaryWithIncludes
System loadBinaryWithIncludes(str product, str version)
function notCoveredBySystem
NotCoveredMap notCoveredBySystem(Corpus corpus, FeatureLattice lattice, CoverageMap coverageMap)
alias NotCoveredMap
map[str product, tuple[set[str] notIn80, set[str] notIn90] filesNotCovered]
function writeNotCoveredInfo
void writeNotCoveredInfo(NotCoveredMap notCovered)
function readNotCoveredInfo
NotCoveredMap readNotCoveredInfo()
function coverageComparison
str coverageComparison(Corpus corpus, NotCoveredMap ncm)
alias EvalUses
rel[str product, str version, loc fileloc, Expr call]
function corpusEvalUses
EvalUses corpusEvalUses(Corpus corpus)
function saveEvalUses
void saveEvalUses(EvalUses evalUses)
function loadEvalUses
EvalUses loadEvalUses()
function calculateEvalTransIncludes
map[str,set[loc]] calculateEvalTransIncludes(Corpus corpus, EvalUses evalUses, map[tuple[str p, str v], rel[loc,loc,loc]] includes)
function calculateFunctionTransIncludes
map[str,set[loc]] calculateFunctionTransIncludes(Corpus corpus, FunctionUses fuses, map[tuple[str p, str v], rel[loc,loc,loc]] includes)
function evalCounts
str evalCounts(Corpus corpus, EvalUses evalUses, FunctionUses fuses, map[str,set[loc]] transEvals, map[str,set[loc]] transFuses)
alias FunctionUses
rel[str product, str version, loc fileloc, Expr call]
function systemFunctionUses
FunctionUses systemFunctionUses(str product, str version, System sys)
function corpusFunctionUses
FunctionUses corpusFunctionUses(Corpus corpus)
function saveFunctionUses
void saveFunctionUses(FunctionUses functionUses)
function loadFunctionUses
FunctionUses loadFunctionUses()
function functionUsesByFun
void functionUsesByFun(FunctionUses functionUses)
function functionUsesCounts
str functionUsesCounts(Corpus corpus, FunctionUses functionUses)
function filterFunctionUses
FunctionUses filterFunctionUses(FunctionUses functionUses, set[str] fnames)
FunctionUses filterFunctionUses(FunctionUses functionUses, str fname)
function createFunctionUses
FunctionUses createFunctionUses(FunctionUses functionUses)
function invokeFunctionUses
FunctionUses invokeFunctionUses(FunctionUses functionUses)
function varargsFunctionUses
FunctionUses varargsFunctionUses(FunctionUses functionUses)
data Def
data Def
= functionDef(str functionName, Stmt functionDef, loc defLoc)
| methodDef(str className, str methodName, ClassItem methodDef, loc defLoc)
;
function varargsFunctionsAndMethods
set[Def] varargsFunctionsAndMethods(System sys)
rel[str p, str v, Def d] varargsFunctionsAndMethods(Corpus corpus)
function varargsCalls
rel[loc,Expr,bool] varargsCalls(System sys)
rel[str,str,loc,Expr,bool] varargsCalls(Corpus corpus)
function allCalls
rel[loc,Expr] allCalls(System sys)
rel[str,str,loc,Expr] allCalls(Corpus corpus)
function saveAllCalls
void saveAllCalls(rel[str,str,loc,Expr] calls)
function loadAllCalls
rel[str,str,loc,Expr] loadAllCalls()
function saveVarargsCalls
void saveVarargsCalls(rel[str,str,loc,Expr,bool] calls)
function loadVarargsCalls
rel[str,str,loc,Expr,bool] loadVarargsCalls()
function classAndInterfaceCount
map[str product,tuple[int classes, int interfaces] ciCount] classAndInterfaceCount(Corpus corpus)
function classAndInterfaceFiles
rel[str product, str path] classAndInterfaceFiles(Corpus corpus)
function showVarArgsUses
str showVarArgsUses(Corpus corpus, rel[str p, str v, Def d] vaDefs, rel[str,str,loc,Expr,bool] vaCalls, rel[str,str,int] allCallsCounts, map[str,set[loc]] vatrans)
function invokeFunctionUsesCounts
str invokeFunctionUsesCounts(Corpus corpus, FunctionUses functionUses, map[str,set[loc]] transInvokes)
alias TotalRes
map[tuple[str,str],set[str]]
function whichHaveSomething
TotalRes whichHaveSomething(Corpus corpus)
function writeMMResults
void writeMMResults(MMResult mmr)
function loadMMResults
MMResult loadMMResults()
function totalStats
rel[str p, str v, int fc, int lc, int dc, real perFiles] totalStats(Corpus corpus, TotalRes tr)