diff --git a/.gitignore b/.gitignore index e389ce7..2e4f0c5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ .idea -Config.rsc # Files generated for Rascal resources src/*.rsc diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index e69de29..5375914 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -0,0 +1,2 @@ +# to be written + diff --git a/pom.xml b/pom.xml index 91ec067..ec6d5e3 100644 --- a/pom.xml +++ b/pom.xml @@ -48,7 +48,7 @@ org.rascalmpl rascal - 0.40.4 + 0.40.17 edu.appstate.cs @@ -136,9 +136,8 @@ org.rascalmpl rascal-maven-plugin - 0.27.5 + 0.28.9 - true false ${project.build.outputDirectory} diff --git a/src/main/rascal/lang/php/analysis/cfg/BuildCFG.rsc b/src/main/rascal/lang/php/analysis/cfg/BuildCFG.rsc index 2ebae93..2eb8af8 100644 --- a/src/main/rascal/lang/php/analysis/cfg/BuildCFG.rsc +++ b/src/main/rascal/lang/php/analysis/cfg/BuildCFG.rsc @@ -487,7 +487,7 @@ public set[Lab] init(Stmt s, LabelState lstate) { case unset(list[Expr] unsetVars) : return init(head(unsetVars), lstate); // A use statement is atomic. - case use(_,_,_) : return { s.lab }; + case useStmt(_,_,_) : return { s.lab }; // In a while loop, the while condition is executed first and thus provides the first label. case \while(Expr cond, _) : return init(cond, lstate); @@ -836,7 +836,7 @@ private set[Lab] final(Stmt s, LabelState lstate) { } // A use is treated as a unit - case use(_,_,_) : { + case useStmt(_,_,_) : { return { s.lab }; } diff --git a/src/main/rascal/lang/php/stats/Stats.rsc b/src/main/rascal/lang/php/stats/Stats.rsc index 1710d1d..22953e6 100644 --- a/src/main/rascal/lang/php/stats/Stats.rsc +++ b/src/main/rascal/lang/php/stats/Stats.rsc @@ -520,28 +520,6 @@ public map[str Product, str Version] getLatestPHP5VersionsByDate() { return ( p : last(v5l)[0] | p <- versions<0>, v5l := sort([ | <- versions[p], "5" == pv[0] ],bool(tuple[str,str] t1, tuple[str,str] t2) { return t1[1] < t2[1]; }), !isEmpty(v5l) ); } -public map[str Product, str Version] getLatestVersionsByVersionNumber() { - versions = loadVersionsCSV(); - return ( p : last(vl)[0] | p <- versions<0>, vl := sort([ | <- versions[p] ],bool(tuple[str,str] t1, tuple[str,str] t2) { return compareVersion(t1[0],t2[0]); }) ); -} - -public map[str Product, str Version] getLatestPHP4VersionsByVersionNumber() { - versions = loadVersionsCSV(); - return ( p : last(v4l)[0] | p <- versions<0>, v4l := sort([ | <- versions[p], "4" == pv[0] ],bool(tuple[str,str] t1, tuple[str,str] t2) { return compareVersion(t1[0], t2[0]); }), !isEmpty(v4l) ); -} - -public map[str Product, str Version] getLatestPHP5VersionsByVersionNumber() { - versions = loadVersionsCSV(); - return ( p : last(v5l)[0] | p <- versions<0>, v5l := sort([ | <- versions[p], "5" == pv[0] ],bool(tuple[str,str] t1, tuple[str,str] t2) { return compareVersion(t1[0],t2[0]); }), !isEmpty(v5l) ); -} - -public map[str Product, str Version] getLatestVersions() = getLatestVersionsByVersionNumber(); - -public map[str Product, str Version] getLatestPHP4Versions() = getLatestPHP4VersionsByVersionNumber(); - -public map[str Product, str Version] getLatestPHP5Versions() = getLatestPHP5VersionsByVersionNumber(); - - public str getPHPVersion(str product, str version) { versions = loadVersionsCSV(); return getOneFrom(versions[product,version,_]<0>); diff --git a/src/main/rascal/lang/php/stats/Unfriendly.rsc b/src/main/rascal/lang/php/stats/Unfriendly.rsc index 954b26b..839b903 100644 --- a/src/main/rascal/lang/php/stats/Unfriendly.rsc +++ b/src/main/rascal/lang/php/stats/Unfriendly.rsc @@ -1165,16 +1165,6 @@ public str groupsTable() = groupsTable({},{},{}); public list[str] getFeatureLabels() = [ l | \map(_,rtype) := #FMap.symbol, /Type::label(l,_) := rtype ]; -public void checkGroups() { - labels = getFeatureLabels(); - groups = getFeatureGroups(); - //keys = [rascalFriendlyKey(k) | k <- (exprKeyOrder()+stmtKeyOrder())]; - missing = {*labels} - {*groups[g] | g <- groups}; - extra = {*groups[g] | g <- groups} - {*labels}; - for (m <- missing) println("Missing: "); - for (e <- extra) println("Extra: "); -} - public str generalFeatureSquiglies(FMap featsMap) { labels = getFeatureLabels(); groups = getFeatureGroups(); @@ -1419,27 +1409,6 @@ public FeatureLattice calculateTransitiveFiles(FeatureLattice lattice, FeatureNo return lattice; } -public void checkGroups() { - labels = [ l | \map(_,rtype) := #FMap.symbol, /Type::label(l,_) := rtype ]; - groups = ("binary ops" : [ l | str l:/^binaryOp.*/ <- labels ]) - + ("unary ops" : [l | str l:/^unaryOp.*/ <- labels ]) - + ("control flow" : ["break","continue","declare","do","for","foreach","goto","if","return","switch","throw","tryCatch","while","exit","suppress","label"]) - + ("assignment ops" : [l | str l:/^assign.*/ <-labels] + ["listAssign","refAssign", "unset"]) - + ("definitions" : ["functionDef","interfaceDef","traitDef","classDef","namespace","global","static","const","use","include","closure"]) - + ("invocations" : ["call","methodCall","staticCall", "eval", "shellExec"]) - + ("allocations" : ["array","new","scalar", "clone"]) - + ("casts" : [l | str l:/^cast.*/ <- labels]) - + ("print" : ["print","echo","inlineHTML" ]) - + ("predicates" : ["isSet","empty","instanceOf"]) - + ("lookups" : ["fetchArrayDim","fetchClassConst","var","classConst","fetchConst","propertyFetch","fetchStaticProperty"]) - ; - keys = [rascalFriendlyKey(k) | k <- (exprKeyOrder()+stmtKeyOrder())]; - missing = toSet(keys) - {*g|g<-groups<1>}; - extra = {*g|g<-groups<1>} - toSet(keys); - for (m <- missing) println("Missing: "); - for (e <- extra) println("Extra: "); -} - public tuple[set[FeatureNode],set[str],int] minimumFeaturesForPercent(FMap fmap, FeatureLattice lattice, int targetPercent) { println("Calculating coverage needed for %"); diff --git a/src/main/rascal/lang/php/util/Config.rsc-dist b/src/main/rascal/lang/php/util/Config.rsc similarity index 100% rename from src/main/rascal/lang/php/util/Config.rsc-dist rename to src/main/rascal/lang/php/util/Config.rsc