Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
571 lines (570 sloc) 14.4 KB
<?xml version="1.0" encoding="UTF-8"?>
<xns1:grammar xmlns:xns1="http://planet-sl.org/bgf">
<xns1:production>
<nonterminal>Integer</nonterminal>
<xns1:expression>
<value>int</value>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>String</nonterminal>
<xns1:expression>
<value>string</value>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Boolean</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>true</terminal>
</xns1:expression>
<xns1:expression>
<terminal>false</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CDataType</nonterminal>
<xns1:expression>
<nonterminal>CIntegral</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CDataType</nonterminal>
<xns1:expression>
<nonterminal>CFloating</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CDataType</nonterminal>
<xns1:expression>
<nonterminal>CBitField</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CDataType</nonterminal>
<xns1:expression>
<nonterminal>CVoid</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CDataType</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>CIntegral</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>CFloating</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>CBitField</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>CVoid</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CIntegral</nonterminal>
<xns1:expression>
<nonterminal>CEnumeration</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CIntegral</nonterminal>
<xns1:expression>
<nonterminal>CInt</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CIntegral</nonterminal>
<xns1:expression>
<nonterminal>CChar</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CIntegral</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>CEnumeration</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>CInt</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>CChar</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CFloating</nonterminal>
<xns1:expression>
<nonterminal>CDouble</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CFloating</nonterminal>
<xns1:expression>
<nonterminal>CFloat</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CFloating</nonterminal>
<xns1:expression>
<nonterminal>CLongDouble</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CFloating</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>CDouble</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>CFloat</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>CLongDouble</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CBitField</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CVoid</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CEnumeration</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CInt</nonterminal>
<xns1:expression>
<nonterminal>CUnsignedInt</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CInt</nonterminal>
<xns1:expression>
<nonterminal>CLong</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CInt</nonterminal>
<xns1:expression>
<nonterminal>CLongLong</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CInt</nonterminal>
<xns1:expression>
<nonterminal>CShort</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CInt</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>CUnsignedInt</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>CLong</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>CLongLong</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>CShort</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CChar</nonterminal>
<xns1:expression>
<nonterminal>CSignedChar</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CChar</nonterminal>
<xns1:expression>
<nonterminal>CUnsignedChar</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CChar</nonterminal>
<xns1:expression>
<nonterminal>CWChar</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CChar</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>CSignedChar</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>CUnsignedChar</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>CWChar</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CDouble</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CFloat</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CLongDouble</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CUnsignedInt</nonterminal>
<xns1:expression>
<nonterminal>UnsignedLong</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CUnsignedInt</nonterminal>
<xns1:expression>
<nonterminal>UnsignedLongLong</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CUnsignedInt</nonterminal>
<xns1:expression>
<nonterminal>UnsignedShort</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CUnsignedInt</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>UnsignedLong</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>UnsignedLongLong</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>UnsignedShort</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CLong</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CLongLong</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CShort</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CSignedChar</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CUnsignedChar</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CWChar</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>UnsignedLong</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>UnsignedLongLong</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>UnsignedShort</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CClassifier</nonterminal>
<xns1:expression>
<nonterminal>CDataType</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CClassifier</nonterminal>
<xns1:expression>
<nonterminal>Derived</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CClassifier</nonterminal>
<xns1:expression>
<nonterminal>CStructured</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CClassifier</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>CDataType</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Derived</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Derived</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CStructureContents</nonterminal>
<xns1:expression>
<nonterminal>CStructuralFeature</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CStructureContents</nonterminal>
<xns1:expression>
<nonterminal>CStructured</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CStructureContents</nonterminal>
<xns1:expression>
<selectable>
<selector>sc_container</selector>
<xns1:expression>
<nonterminal>CStructured</nonterminal>
</xns1:expression>
</selectable>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CStructured</nonterminal>
<xns1:expression>
<nonterminal>CStruct</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CStructured</nonterminal>
<xns1:expression>
<nonterminal>CUnion</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CStructured</nonterminal>
<xns1:expression>
<plus>
<xns1:expression>
<selectable>
<selector>contains</selector>
<xns1:expression>
<nonterminal>CStructureContents</nonterminal>
</xns1:expression>
</selectable>
</xns1:expression>
</plus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CStruct</nonterminal>
<xns1:expression>
<plus>
<xns1:expression>
<selectable>
<selector>contains</selector>
<xns1:expression>
<nonterminal>CStructureContents</nonterminal>
</xns1:expression>
</selectable>
</xns1:expression>
</plus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CUnion</nonterminal>
<xns1:expression>
<plus>
<xns1:expression>
<selectable>
<selector>contains</selector>
<xns1:expression>
<nonterminal>CStructureContents</nonterminal>
</xns1:expression>
</selectable>
</xns1:expression>
</plus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CSourceText</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<selectable>
<selector>source</selector>
<xns1:expression>
<nonterminal>String</nonterminal>
</xns1:expression>
</selectable>
</xns1:expression>
<xns1:expression>
<selectable>
<selector>fileName</selector>
<xns1:expression>
<nonterminal>String</nonterminal>
</xns1:expression>
</selectable>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CTypedElement</nonterminal>
<xns1:expression>
<nonterminal>CParameter</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CTypedElement</nonterminal>
<xns1:expression>
<nonterminal>CStructuralFeature</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CTypedElement</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<selectable>
<selector>type</selector>
<xns1:expression>
<nonterminal>CClassifier</nonterminal>
</xns1:expression>
</selectable>
</xns1:expression>
<xns1:expression>
<selectable>
<selector>source</selector>
<xns1:expression>
<nonterminal>CSourceText</nonterminal>
</xns1:expression>
</selectable>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CStructuralFeature</nonterminal>
<xns1:expression>
<nonterminal>CField</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CField</nonterminal>
<xns1:expression>
<epsilon/>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CParameter</nonterminal>
<xns1:expression>
<selectable>
<selector>behavioralFeature</selector>
<xns1:expression>
<nonterminal>BehavioralFeature</nonterminal>
</xns1:expression>
</selectable>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>BehavioralFeature</nonterminal>
<xns1:expression>
<nonterminal>CFunction</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>BehavioralFeature</nonterminal>
<xns1:expression>
<plus>
<xns1:expression>
<selectable>
<selector>parameters</selector>
<xns1:expression>
<nonterminal>CParameter</nonterminal>
</xns1:expression>
</selectable>
</xns1:expression>
</plus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CFunction</nonterminal>
<xns1:expression>
<selectable>
<selector>isVarArg</selector>
<xns1:expression>
<nonterminal>Boolean</nonterminal>
</xns1:expression>
</selectable>
</xns1:expression>
</xns1:production>
</xns1:grammar>