diff --git a/topics/java/lci/java-lci.csproj b/topics/java/lci/java-lci.csproj index 2871a3b8..1f9b8612 100644 --- a/topics/java/lci/java-lci.csproj +++ b/topics/java/lci/java-lci.csproj @@ -52,7 +52,6 @@ xbgf.xsd - @@ -61,40 +60,45 @@ + + - - + + - - + + + + + + - - - - - + + + + - - + + - + \ No newline at end of file diff --git a/topics/java/lci/java.lcf b/topics/java/lci/java.lcf index 670f71e1..69ae49c2 100644 --- a/topics/java/lci/java.lcf +++ b/topics/java/lci/java.lcf @@ -126,7 +126,7 @@ refactorClasses-doc2 refactorInterfaces-doc2 refactorDeclarations-doc2 - extend-doc2 + edit-doc2 @@ -155,7 +155,7 @@ refactorInterfaces-doc3 refactorEnums refactorDeclarations-doc3 - extend-doc3 + edit-doc3 diff --git a/topics/java/lci/xbgf/correct-app1.xbgf b/topics/java/lci/xbgf/correct-app1.xbgf index c5bcfdca..d8a68ae6 100644 --- a/topics/java/lci/xbgf/correct-app1.xbgf +++ b/topics/java/lci/xbgf/correct-app1.xbgf @@ -2,14 +2,13 @@ xmlns:bgf="http://planet-sl.org/bgf" xmlns:xbgf="http://planet-sl.org/xbgf"> - + CompilationUnit - + + Goal \ No newline at end of file diff --git a/topics/java/lci/xbgf/correct-app2.xbgf b/topics/java/lci/xbgf/correct-app2.xbgf index 0ef0d7fd..9bbbdb2b 100644 --- a/topics/java/lci/xbgf/correct-app2.xbgf +++ b/topics/java/lci/xbgf/correct-app2.xbgf @@ -2,8 +2,7 @@ xmlns:bgf="http://planet-sl.org/bgf" xmlns:xbgf="http://planet-sl.org/xbgf"> - + CompilationUnit @@ -221,8 +220,7 @@ VoidMethodDeclaratorRest VariableDeclaratorsRest - + Identifier \ No newline at end of file diff --git a/topics/java/lci/xbgf/correct-app3.xbgf b/topics/java/lci/xbgf/correct-app3.xbgf index 9b3b39e2..16f605a9 100644 --- a/topics/java/lci/xbgf/correct-app3.xbgf +++ b/topics/java/lci/xbgf/correct-app3.xbgf @@ -2,8 +2,7 @@ xmlns:bgf="http://planet-sl.org/bgf" xmlns:xbgf="http://planet-sl.org/xbgf"> - + CompilationUnit @@ -19,7 +18,7 @@ Annotation: QualifiedIdentifier - + CompilationUnit diff --git a/topics/java/lci/xbgf/correct-doc2.xbgf b/topics/java/lci/xbgf/correct-doc2.xbgf index 41d99efb..6d8dedb7 100644 --- a/topics/java/lci/xbgf/correct-doc2.xbgf +++ b/topics/java/lci/xbgf/correct-doc2.xbgf @@ -2,8 +2,7 @@ xmlns:bgf="http://planet-sl.org/bgf" xmlns:xbgf="http://planet-sl.org/xbgf"> - + CompilationUnit @@ -28,7 +27,7 @@ Identifier - diff --git a/topics/java/lci/xbgf/correct-doc3.xbgf b/topics/java/lci/xbgf/correct-doc3.xbgf index 02db5bf8..04b76350 100644 --- a/topics/java/lci/xbgf/correct-doc3.xbgf +++ b/topics/java/lci/xbgf/correct-doc3.xbgf @@ -2,8 +2,7 @@ xmlns:bgf="http://planet-sl.org/bgf" xmlns:xbgf="http://planet-sl.org/xbgf"> - + CompilationUnit @@ -111,7 +110,7 @@ Identifier - diff --git a/topics/java/lci/xbgf/extend-doc2.xbgf b/topics/java/lci/xbgf/edit-doc2.xbgf similarity index 95% rename from topics/java/lci/xbgf/extend-doc2.xbgf rename to topics/java/lci/xbgf/edit-doc2.xbgf index 14a7adf1..c0fc7bad 100644 --- a/topics/java/lci/xbgf/extend-doc2.xbgf +++ b/topics/java/lci/xbgf/edit-doc2.xbgf @@ -17,7 +17,7 @@ ExplicitConstructorInvocation ArgumentList - @@ -46,8 +46,6 @@ - - TypeList @@ -93,7 +91,7 @@ - + + + + ClassModifier + + + InterfaceModifier + + + ConstructorModifier + + + AbstractMethodModifier + + + MethodModifier + + + FieldModifier + + + ConstantModifier + + + + + + ClassModifier + Modifier + + + + InterfaceModifier + Modifier + + + ConstructorModifier + Modifier + + + AbstractMethodModifier + Modifier + + + MethodModifier + Modifier + + + FieldModifier + Modifier + + + + ConstantModifier + Modifier + + + + + + ClassModifiers + Modifiers + + + + ConstantModifiers + Modifiers + + + InterfaceModifiers + Modifiers + + + ConstructorModifiers + Modifiers + + + AbstractMethodModifiers + Modifiers + + + MethodModifiers + Modifiers + + + FieldModifiers + Modifiers + + + \ No newline at end of file diff --git a/topics/presentation/metrics/xbgf_overview.py b/topics/presentation/metrics/xbgf_overview.py index 48021585..2081d8f3 100755 --- a/topics/presentation/metrics/xbgf_overview.py +++ b/topics/presentation/metrics/xbgf_overview.py @@ -3,6 +3,9 @@ import sys import elementtree.ElementTree as ET +safexbgf = ('deyaccify', 'yaccify','chain', 'unchain', 'extract', 'fold', 'inline', 'unfold', 'distribute', 'factor', 'massage', 'designate', 'strip') +rkeys = ('LOC','NOI','NOX','NI~','NI+','NI!','SGO','COR','NI^') + names = [] targets = {} results = {} @@ -15,6 +18,14 @@ ET._namespace_map[xbgfns]='xbgf' ET._namespace_map[xsdns] = 'xsd' +def noni(filename): + global xbgfns + cx = 0 + xbgf = ET.parse(filename) + for c in safexbgf: + cx += len(xbgf.findall('//{'+xbgfns+'}'+c)) + return cx + def loc(filename): f = open(filename,'r') c = len(f.readlines()) @@ -63,29 +74,24 @@ def report(keys,key,note): path = sys.argv[3] if path[-1] != '/': path += '/' - results['LOC'] = {} - results['NOI'] = {} - results['NOX'] = {} - results['NI~'] = {} - results['NI!'] = {} - results['NI+'] = {} + for x in rkeys: + results[x] = {} for x in names: results[x] = {} for y in targets.keys(): results[x][y] = 0 for x in targets.keys(): - results['LOC'][x] = 0 - results['NOI'][x] = 0 - results['NOX'][x] = 0 - results['NI~'][x] = 0 - results['NI+'][x] = 0 - results['NI!'][x] = 0 + for y in rkeys: + results[y][x] = 0 for y in targets[x]: results['LOC'][x] += loc(path+y+'.xbgf') results['NOI'][x] += nosi(path+y+'.xbgf','ISSUE') results['NI~'][x] += nosi(path+y+'.xbgf','REFACTOR') results['NI+'][x] += nosi(path+y+'.xbgf','EXTEND') results['NI!'][x] += nosi(path+y+'.xbgf','CORRECT') + results['NI^'][x] += nosi(path+y+'.xbgf','PERMISSIVENESS') + results['COR'][x] += nosi(path+y+'.xbgf','EXTRACTERROR') + results['SGO'][x] += noni(path+y+'.xbgf') xbgf = ET.parse(path+y+'.xbgf') results['NOX'][x] += len(xbgf.findall('/*')) for z in names: @@ -107,6 +113,7 @@ def report(keys,key,note): print '&\\textbf{Total}\\\\\\hline' report(sorted,'LOC','\\numberOfLines') report(sorted,'NOX','\\numberOfTransformations') + report(sorted,'SGO','\\numberOfRefactors') print '\\numberOfSteps', cx = 0 for x in sorted: @@ -114,8 +121,10 @@ def report(keys,key,note): print '&',len(targets[x]), print '&'+`cx`+'\\\\' report(sorted,'NOI','\\numberOfIssues') + report(sorted,'COR','\\ \\ post-extraction') report(sorted,'NI!','\\issuesCorrect') report(sorted,'NI+','\\issuesExtend') + report(sorted,'NI^','\\issuesPermit') report(sorted,'NI~','\\issuesRefactor') print '\\hline' print '\\end{tabular}'