diff --git a/shared/prolog/readXbgf.pro b/shared/prolog/readXbgf.pro
index ad1378ac..4762bc1f 100644
--- a/shared/prolog/readXbgf.pro
+++ b/shared/prolog/readXbgf.pro
@@ -347,10 +347,11 @@ xml2xbgf(T,unchain(P2))
child(name(bgf:production),T,P1),
xmlToP(P1,P2).
-xml2xbgf(T,undefine(N))
+xml2xbgf(T,undefine(Ns2))
:-
self(name(xbgf:undefine),T),
- content(T,N).
+ children(name(nonterminal),T,Ns1),
+ maplist(content,Ns1,Ns2).
xml2xbgf(T,redefine(Ps2))
:-
diff --git a/shared/prolog/xbgf1.pro b/shared/prolog/xbgf1.pro
index 776b5dc0..b7fd9851 100644
--- a/shared/prolog/xbgf1.pro
+++ b/shared/prolog/xbgf1.pro
@@ -109,7 +109,7 @@ ps2n(Ps1,N)
redefine(Ps1,G1,G2)
:-
ps2n(Ps1,N),
- undefine(N,G1,G3),
+ undefine1(N,G1,G3),
define(Ps1,G3,G2).
@@ -1379,8 +1379,13 @@ unchain(P1,g(Rs,Ps1),g(Rs,Ps4))
%
% Undefine a nonterminal, i.e., remove all productions
%
+undefine([],g(Rs1,Ps1),g(Rs1,Ps1)).
+undefine([N|Ns],g(Rs1,Ps1),g(Rs3,Ps3))
+ :-
+ undefine1(N,g(Rs1,Ps1),g(Rs2,Ps2)),
+ undefine(Ns,g(Rs2,Ps2),g(Rs3,Ps3)).
-undefine(N,g(Rs1,Ps1),g(Rs2,Ps2))
+undefine1(N,g(Rs1,Ps1),g(Rs2,Ps2))
:-
definedNs(Ps1,Defined),
require(
diff --git a/shared/xsd/slps-xsd.csproj b/shared/xsd/slps-xsd.csproj
index 67d8f74e..702d1c44 100644
--- a/shared/xsd/slps-xsd.csproj
+++ b/shared/xsd/slps-xsd.csproj
@@ -10,7 +10,7 @@
Properties
slps_xsd
slps-xsd
- v3.5
+ v4.0
512
@@ -32,6 +32,7 @@
false
false
true
+
true
@@ -59,6 +60,7 @@
-->
+
diff --git a/shared/xsd/xbgf.xsd b/shared/xsd/xbgf.xsd
index 0c30d1fe..cd2205b1 100644
--- a/shared/xsd/xbgf.xsd
+++ b/shared/xsd/xbgf.xsd
@@ -1084,11 +1084,10 @@
-
-
-
-
-
+
+
+
+
diff --git a/shared/xsl/slps-xsl.csproj b/shared/xsl/slps-xsl.csproj
index b2bcb916..3560dcc3 100644
--- a/shared/xsl/slps-xsl.csproj
+++ b/shared/xsl/slps-xsl.csproj
@@ -10,7 +10,7 @@
Properties
slps_xsl
slps-xsl
- v3.5
+ v4.0
512
@@ -32,6 +32,7 @@
false
false
true
+
true
@@ -97,4 +98,7 @@
true
+
+
+
\ No newline at end of file
diff --git a/shared/xsl/xbgf2xbnf.xslt b/shared/xsl/xbgf2xbnf.xslt
index a391af6c..117ba9c8 100644
--- a/shared/xsl/xbgf2xbnf.xslt
+++ b/shared/xsl/xbgf2xbnf.xslt
@@ -5,7 +5,7 @@
xmlns:xhtml="http://www.w3.org/1999/xhtml">
-
+
-
+
@@ -91,7 +91,19 @@
-
+
+
+ (
+
+
+ ,
+
+
+ );
+
+
+
+
(
@@ -198,7 +210,7 @@
);
-
+
(
@@ -258,4 +270,4 @@
-
+
\ No newline at end of file
diff --git a/topics/java/lci/java-lci.csproj b/topics/java/lci/java-lci.csproj
index f507eb48..e8581478 100644
--- a/topics/java/lci/java-lci.csproj
+++ b/topics/java/lci/java-lci.csproj
@@ -1,5 +1,5 @@
-
+
Debug
AnyCPU
@@ -10,8 +10,29 @@
Properties
java_lci
java-lci
- v3.5
+ v4.0
512
+
+
+
+
+ 3.5
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ false
+ true
+
true
@@ -54,6 +75,7 @@
xbgf.xsd
+
@@ -126,4 +148,26 @@
+
+
+ False
+ .NET Framework 3.5 SP1 Client Profile
+ false
+
+
+ False
+ .NET Framework 3.5 SP1
+ true
+
+
+ False
+ Microsoft Visual Basic PowerPacks 10.0
+ true
+
+
+ False
+ Windows Installer 3.1
+ true
+
+
\ No newline at end of file
diff --git a/topics/java/lci/java-lci.sln b/topics/java/lci/java-lci.sln
index 4480a20f..3b4c288d 100644
--- a/topics/java/lci/java-lci.sln
+++ b/topics/java/lci/java-lci.sln
@@ -1,6 +1,5 @@
-
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual C# Express 2008
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "java-lci", "java-lci.csproj", "{9DF685A6-6572-47F9-8DE3-1E827BFDB62F}"
EndProject
Global
diff --git a/topics/java/lci/xbgf/correct-impl2.xbgf b/topics/java/lci/xbgf/correct-impl2.xbgf
index 8eda2e23..53dafd05 100644
--- a/topics/java/lci/xbgf/correct-impl2.xbgf
+++ b/topics/java/lci/xbgf/correct-impl2.xbgf
@@ -214,7 +214,9 @@
- Identifier
+
+ Identifier
+
- Identifier
+
+ Identifier
+
- ConstructorBody
+
+ ConstructorBody
+
ConstructorBody
diff --git a/topics/java/lci/xbgf/inlineStatements.xbgf b/topics/java/lci/xbgf/inlineStatements.xbgf
index b8239e3a..3850a6b3 100644
--- a/topics/java/lci/xbgf/inlineStatements.xbgf
+++ b/topics/java/lci/xbgf/inlineStatements.xbgf
@@ -136,7 +136,9 @@
IfThenStatement
- StatementNoShortIf
+
+ StatementNoShortIf
+
WhileStatementNoShortIf
IfThenElseStatementNoShortIf
ForStatementNoShortIf
diff --git a/topics/java/lci/xbgf/refactorExpressions.xbgf b/topics/java/lci/xbgf/refactorExpressions.xbgf
index 3e596338..05da9861 100644
--- a/topics/java/lci/xbgf/refactorExpressions.xbgf
+++ b/topics/java/lci/xbgf/refactorExpressions.xbgf
@@ -725,21 +725,16 @@ vs
- MultiplicativeExpression
-
- AdditiveExpression
-
- ShiftExpression
-
- RelationalExpression
-
- EqualityExpression
-
- AndExpression
-
- ExclusiveOrExpression
-
- InclusiveOrExpression
+
+ MultiplicativeExpression
+ AdditiveExpression
+ ShiftExpression
+ RelationalExpression
+ EqualityExpression
+ AndExpression
+ ExclusiveOrExpression
+ InclusiveOrExpression
+
ConditionalAndExpression
@@ -823,9 +818,10 @@ vs
- LeftHandSide
-
- Assignment
+
+ LeftHandSide
+ Assignment
+
diff --git a/topics/java/lci/xbgf/refactorInterfaces-read3.xbgf b/topics/java/lci/xbgf/refactorInterfaces-read3.xbgf
index ae6d9e2d..3ba8b913 100644
--- a/topics/java/lci/xbgf/refactorInterfaces-read3.xbgf
+++ b/topics/java/lci/xbgf/refactorInterfaces-read3.xbgf
@@ -646,7 +646,9 @@
ExceptionTypeList vs QualifiedIdentifierList -->
- ExceptionTypeList
+
+ ExceptionTypeList
+
ExceptionTypeList
diff --git a/topics/java/lci/xbgf/refactorStatements-jls1.xbgf b/topics/java/lci/xbgf/refactorStatements-jls1.xbgf
index ef9f640a..a6d38e14 100644
--- a/topics/java/lci/xbgf/refactorStatements-jls1.xbgf
+++ b/topics/java/lci/xbgf/refactorStatements-jls1.xbgf
@@ -274,7 +274,9 @@
- StatementNoShortIf
+
+ StatementNoShortIf
+
ForStatementNoShortIf
WhileStatementNoShortIf
LabeledStatementNoShortIf
diff --git a/topics/languedoc/xbgf/xldf/completeRevSections.xldf b/topics/languedoc/xbgf/xldf/completeRevSections.xldf
index a2dcc6ea..bc05c446 100644
--- a/topics/languedoc/xbgf/xldf/completeRevSections.xldf
+++ b/topics/languedoc/xbgf/xldf/completeRevSections.xldf
@@ -37,6 +37,68 @@
+
+ undefine
+
+
+ undefine
+
+
+
+
+
+
+
+ nonterminal
+
+ nonterminal
+
+
+
+
+
+
+
+
+ tag
+
+ string
+
+
+
+
+
+
+
+
+
+ undefine
+
+
+
+
+
+ nonterminal
+
+
+
+
+
+
+
+ tag
+
+ string
+
+
+
+
+
+
+
+
+
+
inject
diff --git a/topics/transformation/xbgf/tests/undefine.baseline b/topics/transformation/xbgf/tests/undefine1.baseline
similarity index 100%
rename from topics/transformation/xbgf/tests/undefine.baseline
rename to topics/transformation/xbgf/tests/undefine1.baseline
diff --git a/topics/transformation/xbgf/tests/undefine.bgf b/topics/transformation/xbgf/tests/undefine1.bgf
similarity index 100%
rename from topics/transformation/xbgf/tests/undefine.bgf
rename to topics/transformation/xbgf/tests/undefine1.bgf
diff --git a/topics/transformation/xbgf/tests/undefine.xbgf b/topics/transformation/xbgf/tests/undefine1.xbgf
similarity index 61%
rename from topics/transformation/xbgf/tests/undefine.xbgf
rename to topics/transformation/xbgf/tests/undefine1.xbgf
index bb760744..d4ccedca 100644
--- a/topics/transformation/xbgf/tests/undefine.xbgf
+++ b/topics/transformation/xbgf/tests/undefine1.xbgf
@@ -1,5 +1,7 @@
- op
+
+ op
+
diff --git a/topics/transformation/xbgf/tests/undefine2.baseline b/topics/transformation/xbgf/tests/undefine2.baseline
new file mode 100644
index 00000000..c2fa8955
--- /dev/null
+++ b/topics/transformation/xbgf/tests/undefine2.baseline
@@ -0,0 +1,16 @@
+
+
+
+
+ foo
+
+ bar
+
+
+
+ wez
+
+ qux
+
+
+
\ No newline at end of file
diff --git a/topics/transformation/xbgf/tests/undefine2.bgf b/topics/transformation/xbgf/tests/undefine2.bgf
new file mode 100644
index 00000000..3f25216e
--- /dev/null
+++ b/topics/transformation/xbgf/tests/undefine2.bgf
@@ -0,0 +1,28 @@
+
+
+
+
+ foo
+
+ bar
+
+
+
+ bar
+
+ wez
+
+
+
+ wez
+
+ qux
+
+
+
+ qux
+
+ foo
+
+
+
\ No newline at end of file
diff --git a/topics/transformation/xbgf/tests/undefine2.xbgf b/topics/transformation/xbgf/tests/undefine2.xbgf
new file mode 100644
index 00000000..38e50532
--- /dev/null
+++ b/topics/transformation/xbgf/tests/undefine2.xbgf
@@ -0,0 +1,8 @@
+
+
+ bar
+ qux
+
+