Skip to content

Commit

Permalink
introducing markers and the (not yet working) test case for terminalize
Browse files Browse the repository at this point in the history
git-svn-id: https://slps.svn.sourceforge.net/svnroot/slps@437 ab42f6e0-554d-0410-b580-99e487e6eeb2
  • Loading branch information
grammarware committed Feb 4, 2009
1 parent e26925c commit 16699a4
Show file tree
Hide file tree
Showing 7 changed files with 116 additions and 21 deletions.
7 changes: 7 additions & 0 deletions shared/xsd/bgf.xsd
Expand Up @@ -78,6 +78,13 @@
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="marked">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="bgf:expression" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="choice">
<xsd:complexType>
<xsd:sequence>
Expand Down
18 changes: 18 additions & 0 deletions shared/xsd/xbgf.xsd
Expand Up @@ -58,6 +58,7 @@
<xsd:element ref="xbgf:reroot"/>
<xsd:element ref="xbgf:abridge"/>
<xsd:element ref="xbgf:strip"/>
<xsd:element ref="xbgf:terminalize"/>
<xsd:element ref="xbgf:unchain"/>
<xsd:element ref="xbgf:undefine"/>
<xsd:element ref="xbgf:unfold"/>
Expand Down Expand Up @@ -648,6 +649,23 @@
</xsd:complexType>
</xsd:element>

<xsd:element name="terminalize">
<xsd:annotation>
<xsd:documentation>
Terminalizing means enriching an existing production by inserting
terminals in marked spaces.
</xsd:documentation>
<xsd:documentation>
Terminalize breaks concrete, but not abstract, semantics.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:choice>
<xsd:element ref="bgf:production"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>

<xsd:element name="unchain">
<xsd:annotation>
<xsd:documentation>
Expand Down
10 changes: 8 additions & 2 deletions shared/xsl/bgf2bnf.xslt
Expand Up @@ -51,13 +51,19 @@
<xsl:template match="bgf:expression">
<xsl:apply-templates select="./*"/>
</xsl:template>


<xsl:template match="marked">
<xsl:text><![CDATA[<]]> </xsl:text>
<xsl:apply-templates select="./*"/>
<xsl:text><![CDATA[>]]> </xsl:text>
</xsl:template>

<xsl:template match="plus">
<xsl:text>( </xsl:text>
<xsl:apply-templates select="./*"/>
<xsl:text>)+ </xsl:text>
</xsl:template>

<xsl:template match="star">
<xsl:text>( </xsl:text>
<xsl:apply-templates select="./*"/>
Expand Down
38 changes: 19 additions & 19 deletions topics/transformation/xbgf/tests/deyaccify1.bgf
@@ -1,24 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>

<xns1:grammar xmlns:xns1="http://planet-sl.org/bgf">
<xns1:production>
<bgf:grammar xmlns:bgf="http://planet-sl.org/bgf">
<bgf:production>
<nonterminal>decs</nonterminal>
<xns1:expression>
<bgf:expression>
<choice>
<xns1:expression>
<nonterminal>dec</nonterminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>dec</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>decs</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
<bgf:expression>
<nonterminal>dec</nonterminal>
</bgf:expression>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>dec</nonterminal>
</bgf:expression>
<bgf:expression>
<nonterminal>decs</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</choice>
</xns1:expression>
</xns1:production>
</xns1:grammar>
</bgf:expression>
</bgf:production>
</bgf:grammar>
20 changes: 20 additions & 0 deletions topics/transformation/xbgf/tests/terminalize.baseline
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>

<bgf:grammar xmlns:bgf="http://planet-sl.org/bgf">
<bgf:production>
<nonterminal>A</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>b</nonterminal>
</bgf:expression>
<bgf:expression>
<terminal>x</terminal>
</bgf:expression>
<bgf:expression>
<nonterminal>c</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
</bgf:grammar>
17 changes: 17 additions & 0 deletions topics/transformation/xbgf/tests/terminalize.bgf
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>

<bgf:grammar xmlns:bgf="http://planet-sl.org/bgf">
<bgf:production>
<nonterminal>A</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>b</nonterminal>
</bgf:expression>
<bgf:expression>
<nonterminal>c</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
</bgf:grammar>
27 changes: 27 additions & 0 deletions topics/transformation/xbgf/tests/terminalize.xbgf
@@ -0,0 +1,27 @@
<xbgf:sequence
xmlns:bgf="http://planet-sl.org/bgf"
xmlns:xbgf="http://planet-sl.org/xbgf">

<xbgf:terminalize>
<bgf:production>
<nonterminal>A</nonterminal>
<bgf:expression>
<sequence>
<bgf:expression>
<nonterminal>b</nonterminal>
</bgf:expression>
<bgf:expression>
<marked>
<bgf:expression>
<terminal>x</terminal>
</bgf:expression>
</marked>
</bgf:expression>
<bgf:expression>
<nonterminal>c</nonterminal>
</bgf:expression>
</sequence>
</bgf:expression>
</bgf:production>
</xbgf:terminalize>
</xbgf:sequence>

0 comments on commit 16699a4

Please sign in to comment.