Skip to content

Commit

Permalink
matching nonterminals agree on their definitions!
Browse files Browse the repository at this point in the history
git-svn-id: https://slps.svn.sourceforge.net/svnroot/slps@296 ab42f6e0-554d-0410-b580-99e487e6eeb2
  • Loading branch information
grammarware committed Sep 23, 2008
1 parent 4f90227 commit 1274bec
Show file tree
Hide file tree
Showing 15 changed files with 1,893 additions and 209 deletions.
2 changes: 1 addition & 1 deletion topics/java/jls2/collect.kw
Expand Up @@ -15,7 +15,7 @@
8.1.5
8.3
8.3.1
8.4/2
8.4
8.4.1/2
8.4.3
8.4.4
Expand Down
3 changes: 2 additions & 1 deletion topics/java/lci/Makefile
Expand Up @@ -6,7 +6,8 @@ diff2: test
gdt bgf/jls1app.prepare1.refactorStatements.refactorTypes.structure1.addFeatures1to2.cropFeatures1.bgf bgf/jls2.prepare2.bgf

diff:
../../../shared/tools/gdt bgf/jls2syntax.fixErrors2.prepare2.bgf bgf/jls2doc.fixErrors2doc.unifyModifiers.deyaccify2doc.refactorTypes.inlineStatements2doc.inlineExpressions2doc.refactorDeclarations2doc.breakSemantics2doc.bgf
../../../shared/tools/gdt bgf/jls2syntax.fixErrors2.prepare2.expandOps.bgf bgf/jls2doc.fixErrors2doc.unifyModifiers.unifyNames.deyaccify2doc.refactorTypes.deyaccifyExpressions.inlineStatements2doc.inlineExpressions2doc.refactorClassDeclarations.refactorDeclarations2doc.breakSemantics2doc.bgf


test:
python ../../convergence/lci/lci.py java.lcf architecture
Expand Down
5 changes: 5 additions & 0 deletions topics/java/lci/java.lcf
Expand Up @@ -94,6 +94,7 @@
</branch>
<branch>
<input>jls1doc</input>
<perform>unifyNames</perform>
<perform>preferLALR</perform>
</branch>
</target-->
Expand All @@ -104,15 +105,19 @@
<input>jls2syntax</input>
<perform>fixErrors2</perform>
<perform>prepare2</perform>
<perform>expandOps</perform>
</branch>
<branch>
<input>jls2doc</input>
<perform>fixErrors2doc</perform>
<perform>unifyModifiers</perform>
<perform>unifyNames</perform>
<perform>deyaccify2doc</perform>
<perform>refactorTypes</perform>
<perform>deyaccifyExpressions</perform>
<perform>inlineStatements2doc</perform>
<perform>inlineExpressions2doc</perform>
<perform>refactorClassDeclarations</perform>
<perform>refactorDeclarations2doc</perform>
<perform>breakSemantics2doc</perform>
</branch>
Expand Down
183 changes: 181 additions & 2 deletions topics/java/lci/xbgf/breakSemantics2doc.xbgf
Expand Up @@ -21,8 +21,8 @@
</bgf:expression>
</bgf:production>
</xbgf:remove>
<!--

<!--
- Fail: SwitchBlockStatementGroup.
- [], ,([n(SwitchLabel), n(BlockStatements)])
vs.
Expand All @@ -39,4 +39,183 @@
<nonterminal>SwitchBlockStatementGroup</nonterminal>
</in>
</xbgf:replace>

<!--
ConstructorBody is defined as:
{ [ ExplicitConstructorInvocation ] [ BlockStatements ] }
-->
<xbgf:undefine>ConstructorBody</xbgf:undefine>
<xbgf:unite>
<add>ConstructorBody</add>
<to>MethodBody</to>
</xbgf:unite>

<!--
ConstructorDeclaratorRest is defined as:
FormalParameters [ "throws" QualifiedIdentifierList ] MethodBody
-->
<xbgf:replace>
<bgf:expression>
<nonterminal>TypeList</nonterminal>
</bgf:expression>
<bgf:expression>
<nonterminal>QualifiedIdentifierList</nonterminal>
</bgf:expression>
<in>
<nonterminal>ConstructorDeclaratorRest</nonterminal>
</in>
</xbgf:replace>
<xbgf:replace>
<bgf:expression>
<nonterminal>TypeList</nonterminal>
</bgf:expression>
<bgf:expression>
<nonterminal>QualifiedIdentifierList</nonterminal>
</bgf:expression>
<in>
<nonterminal>MethodDeclaratorRest</nonterminal>
</in>
</xbgf:replace>

<!--
- Fail: MethodDeclaratorRest.
- [], ,([n(FormalParameters), n(BracketsOpt), ?(,([t(throws), n(QualifiedIdentifierList)])), ;([n(MethodBody), t((;))])])
vs.
- [], ,([n(FormalParameters), ?(,([t(throws), n(QualifiedIdentifierList)])), n(MethodBody)])
-->
<xbgf:inject>
<bgf:production>
<nonterminal>MethodDeclaratorRest</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>FormalParameters</nonterminal>
</bgf:expression>
<bgf:expression>
<nonterminal>BracketsOpt</nonterminal>
</bgf:expression>
<bgf:expression>
<optional>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>throws</terminal>
</bgf:expression>
<bgf:expression>
<nonterminal>QualifiedIdentifierList</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</optional>
</bgf:expression>
<bgf:expression>
<nonterminal>MethodBody</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
</xbgf:inject>
<xbgf:replace>
<bgf:expression>
<nonterminal>MethodBody</nonterminal>
</bgf:expression>
<bgf:expression>
<choice>
<bgf:expression>
<nonterminal>MethodBody</nonterminal>
</bgf:expression>
<bgf:expression>
<terminal>;</terminal>
</bgf:expression>
</choice>
</bgf:expression>
<in>
<nonterminal>MethodDeclaratorRest</nonterminal>
</in>
</xbgf:replace>

<!--
- Fail: ArrayInitializer.
- [], ,([t({), ?(,([n(VariableInitializer), *(,([t((,)), n(VariableInitializer)])), ?(t((,)))])), t(})])
vs.
- [], ,([t({), ?(,([n(VariableInitializer), *(,([t((,)), n(VariableInitializer)]))])), ?(t((,))), t(})])

ArrayInitializer is defined as: (collected)
"{" [ VariableInitializers ] [ "," ] "}"
ArrayInitializer is defined as: (syntax)
"{" [ VariableInitializers [ "," ] ] "}"
-->
<xbgf:replace>
<bgf:expression>
<sequence>
<bgf:expression>
<optional>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>VariableInitializer</nonterminal>
</bgf:expression>
<bgf:expression>
<star>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>,</terminal>
</bgf:expression>
<bgf:expression>
<nonterminal>VariableInitializer</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</star>
</bgf:expression>
</sequence>
</bgf:expression>
</optional>
</bgf:expression>
<bgf:expression>
<optional>
<bgf:expression>
<terminal>,</terminal>
</bgf:expression>
</optional>
</bgf:expression>
</sequence>
</bgf:expression>
<bgf:expression>
<optional>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>VariableInitializer</nonterminal>
</bgf:expression>
<bgf:expression>
<star>
<bgf:expression>
<sequence>
<bgf:expression>
<terminal>,</terminal>
</bgf:expression>
<bgf:expression>
<nonterminal>VariableInitializer</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</star>
</bgf:expression>
<bgf:expression>
<optional>
<bgf:expression>
<terminal>,</terminal>
</bgf:expression>
</optional>
</bgf:expression>
</sequence>
</bgf:expression>
</optional>
</bgf:expression>
<in>
<nonterminal>ArrayInitializer</nonterminal>
</in>
</xbgf:replace>
</xbgf:sequence>

0 comments on commit 1274bec

Please sign in to comment.