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}'