Skip to content
Snippets Groups Projects
Commit af79ff9f authored by Anders Nilsson's avatar Anders Nilsson
Browse files

Can now parse and prettyprint config-sheet.xml. Unfortunaely some bug came...

Can now parse and prettyprint config-sheet.xml. Unfortunaely some bug came afloat in the x3d example in the process.
parent 52cc6e5d
No related branches found
No related tags found
No related merge requests found
...@@ -5,6 +5,11 @@ examples/x3d/GeneratedAspects.jrag ...@@ -5,6 +5,11 @@ examples/x3d/GeneratedAspects.jrag
examples/x3d/Parser.java examples/x3d/Parser.java
examples/x3d/x3d.ast examples/x3d/x3d.ast
examples/x3d/x3d.jjt examples/x3d/x3d.jjt
javadoc
examples/x3d/PrettyPrint.java examples/x3d/PrettyPrint.java
examples/configForm/GeneratedAspects.jrag
examples/configForm/Parser.java
examples/configForm/PrettyPrint.java
examples/configForm/configForm.ast
examples/configForm/configForm.jjt
javadoc
SchemaCompile.jar SchemaCompile.jar
...@@ -17,43 +17,28 @@ aspect AbsGrammarGeneration { ...@@ -17,43 +17,28 @@ aspect AbsGrammarGeneration {
} }
public void Start.genAbsGrammar(PrintStream pStream) { public void Start.genAbsGrammar(PrintStream pStream) {
pStream.println("// -*-Java-*- ");
pStream.println();
pStream.println("// Automatically generated JastAdd abstract grammar file ");
pStream.println("// Predefined types"); pStream.println("// Predefined types");
pStream.println("Start ::= Specification;"); pStream.println("Start ::= Specification;");
pStream.println("Specification ::= XmlHeader [DocType] Element*;"); pStream.println("Specification ::= XmlHeader [DocType] Element*;");
// pStream.println("Specification ::= XmlHeader Element*;");
pStream.println("XmlHeader ::= Attribute*;"); pStream.println("XmlHeader ::= Attribute*;");
pStream.println("DocType ::= <STRING>;"); pStream.println("DocType ::= <STRING>;");
pStream.println("abstract Thing : ComplexElement ::=;"); pStream.println("abstract Thing : ComplexElement ::=;");
pStream.println("abstract Element;"); pStream.println("abstract Element;");
// pStream.println("ComplexElement : Element ::= OwlIdentifier Attribute* Element*;");
pStream.println("ComplexElement : Element ::= Attribute* Element*;"); pStream.println("ComplexElement : Element ::= Attribute* Element*;");
pStream.println("ValueElement : ComplexElement;"); pStream.println("ValueElement : ComplexElement;");
pStream.println("abstract SimpleElement : Element;"); pStream.println("abstract SimpleElement : Element;");
pStream.println("StringElement : SimpleElement ::= <IDENTIFIER>;"); pStream.println("StringElement : SimpleElement ::= <LITERAL>;");
pStream.println("IntElement : SimpleElement ::= <INTEGER_LITERAL>;"); pStream.println("IntElement : SimpleElement ::= <LITERAL>;");
pStream.println("FloatElement : SimpleElement ::= <FLOAT_LITERAL>;"); pStream.println("FloatElement : SimpleElement ::= <LITERAL>;");
// pStream.println("ClassUse : Thing ::= /decl:Thing/;");
pStream.println("Attribute ::= AttrValue;"); pStream.println("Attribute ::= AttrValue;");
// pStream.println("RdfDatatype : Attribute ::= ;");
// pStream.println("RdfId : Attribute ::= ;");
// pStream.println("Xmlns : Attribute ::= ;");
// pStream.println("XmlnsProtege : Attribute ::= ;");
// pStream.println("XmlnsRdf : Attribute ::= ;");
// pStream.println("XmlnsXsd : Attribute ::= ;");
// pStream.println("XmlnsRdfs : Attribute ::= ;");
// pStream.println("XmlnsOwl : Attribute ::= ;");
// pStream.println("XmlnsDaml : Attribute ::= ;");
// pStream.println("XmlnsP1 : Attribute ::= ;");
// pStream.println("XmlnsDc : Attribute ::= ;");
// pStream.println("XmlBase : Attribute ::= ;");
// pStream.println("RdfResource : Attribute ::= ;");
// pStream.println("RdfAbout : Attribute ::= ;");
// pStream.println("RdfParseType : Attribute ::= ;");
// pStream.println("Version : Attribute ::= ;");
// pStream.println("Value ::= <STRING_LITERAL>;");
// pStream.println("OwlIdentifier ::= <IDENTIFIER>;");
pStream.println("AttrValue ::= <STRING_LITERAL>;"); pStream.println("AttrValue ::= <STRING_LITERAL>;");
pStream.println("Encoding : Attribute ::=;"); pStream.println("Encoding : Attribute ::=;");
pStream.println("Version : Attribute ::=;");
pStream.println("XmlnsXsi : Attribute ::=;");
pStream.println("XsiNoNamespaceSchemaLocation : Attribute ::=;");
pStream.println(); pStream.println();
pStream.println("// Generated types"); pStream.println("// Generated types");
...@@ -71,7 +56,7 @@ aspect AbsGrammarGeneration { ...@@ -71,7 +56,7 @@ aspect AbsGrammarGeneration {
void XsElement.genAbsGrammar(PrintStream pStream) { void XsElement.genAbsGrammar(PrintStream pStream) {
if (hasName()) { // If not, it's just a reference to an element declaration if (hasName()) { // If not, it's just a reference to an element declaration
String name = name(); String name = fixName(name());
pStream.println(name + " : ComplexElement ::= ;"); pStream.println(name + " : ComplexElement ::= ;");
} }
} }
...@@ -130,7 +115,7 @@ aspect GenJavaCC { ...@@ -130,7 +115,7 @@ aspect GenJavaCC {
pStream.println("String getData() {"); pStream.println("String getData() {");
pStream.println(" StringBuffer s = new StringBuffer();"); pStream.println(" StringBuffer s = new StringBuffer();");
pStream.println("// jjtThis.someData = true;"); pStream.println("// jjtThis.someData = true;");
pStream.println(" while ((getToken(1)).kind != LT && (getToken(1)).kind != GT) {"); pStream.println(" while ((getToken(1)).kind != LT && (getToken(1)).kind != LTSLASH) {");
pStream.println(" Token t = getNextToken();"); pStream.println(" Token t = getNextToken();");
pStream.println(" if (t.specialToken != null) {"); pStream.println(" if (t.specialToken != null) {");
pStream.println(" Token tmp_t = t.specialToken;"); pStream.println(" Token tmp_t = t.specialToken;");
...@@ -174,9 +159,24 @@ aspect GenJavaCC { ...@@ -174,9 +159,24 @@ aspect GenJavaCC {
pStream.println(" <encoding> \"=\" AttrValue()"); pStream.println(" <encoding> \"=\" AttrValue()");
pStream.println("}"); pStream.println("}");
pStream.println(); pStream.println();
pStream.println("void Version() #Version : {}");
pStream.println("{");
pStream.println(" <version> \"=\" AttrValue()");
pStream.println("}");
pStream.println();
pStream.println("void XsiNoNamespaceSchemaLocation() #XsiNoNamespaceSchemaLocation : {}");
pStream.println("{");
pStream.println(" <XsiNoNamespaceSchemaLocation> \"=\" AttrValue()");
pStream.println("}");
pStream.println();
pStream.println("void XmlnsXsi() #XmlnsXsi : {}");
pStream.println("{");
pStream.println(" <XmlnsXsi> \"=\" AttrValue()");
pStream.println("}");
pStream.println();
pStream.println("void Element() : {}"); pStream.println("void Element() : {}");
pStream.println("{"); pStream.println("{");
pStream.println(" <LT> ("); pStream.println(" ( <LT> (");
Iterator iter = elementTypes().values().iterator(); Iterator iter = elementTypes().values().iterator();
if (iter.hasNext()) { if (iter.hasNext()) {
pStream.println(" "+fixName(((XsElement) iter.next()).name())+"()"); pStream.println(" "+fixName(((XsElement) iter.next()).name())+"()");
...@@ -184,12 +184,46 @@ aspect GenJavaCC { ...@@ -184,12 +184,46 @@ aspect GenJavaCC {
while (iter.hasNext()) { while (iter.hasNext()) {
pStream.println(" | "+fixName(((XsElement) iter.next()).name())+"()"); pStream.println(" | "+fixName(((XsElement) iter.next()).name())+"()");
} }
pStream.println(" ) "); pStream.println(" )) ");
pStream.println(" | SimpleElement()");
pStream.println("}");
pStream.println();
pStream.println("void SimpleElement() : {}");
pStream.println("{");
pStream.println(" IntElement()");
pStream.println(" | FloatElement()");
pStream.println(" | StringElement()");
pStream.println("}");
pStream.println();
pStream.println("void IntElement() #IntElement : { Token t; }");
pStream.println("{");
pStream.println(" t = <INTEGER_LITERAL>");
pStream.println(" {jjtThis.setLITERAL(t.image);}");
pStream.println("}");
pStream.println();
pStream.println("void FloatElement() #FloatElement : { Token t; }");
pStream.println("{");
pStream.println(" t = <FLOAT_LITERAL>");
pStream.println(" {jjtThis.setLITERAL(t.image);}");
pStream.println("}"); pStream.println("}");
pStream.println(); pStream.println();
pStream.println("void StringElement() #StringElement : { Token t;String s; }");
pStream.println("{");
pStream.println(" t = <IDENTIFIER>");
pStream.println(" {");
pStream.println(" s = t.image;");
pStream.println(" if (getToken(1).kind != GT ) {");
pStream.println(" s += getData();");
pStream.println(" }");
pStream.println(" }");
pStream.println(" {jjtThis.setLITERAL(s);}");
pStream.println("}");
pStream.println("void Attribute() : {}"); pStream.println("void Attribute() : {}");
pStream.println("{"); pStream.println("{");
pStream.println(" Encoding()"); pStream.println(" Encoding()");
pStream.println(" | Version()");
pStream.println(" | XsiNoNamespaceSchemaLocation()");
pStream.println(" | XmlnsXsi()");
iter = attributeTypes().values().iterator(); iter = attributeTypes().values().iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
pStream.println(" | "+fixName(((XsAttribute) iter.next()).name())+"()"); pStream.println(" | "+fixName(((XsAttribute) iter.next()).name())+"()");
...@@ -212,7 +246,7 @@ aspect GenJavaCC { ...@@ -212,7 +246,7 @@ aspect GenJavaCC {
void XsElement.genJavaCC(PrintStream pStream) { void XsElement.genJavaCC(PrintStream pStream) {
if (hasName()) { // If not, it's just a reference to an element declaration if (hasName()) { // If not, it's just a reference to an element declaration
String name = name(); String name = fixName(name());
pStream.println("void "+name+"() #"+name+" : {}"); pStream.println("void "+name+"() #"+name+" : {}");
pStream.println("{"); pStream.println("{");
...@@ -235,13 +269,12 @@ aspect GenJavaCC { ...@@ -235,13 +269,12 @@ aspect GenJavaCC {
pStream.println("void "+name+"() #"+name+" : {}"); pStream.println("void "+name+"() #"+name+" : {}");
pStream.println("{"); pStream.println("{");
pStream.println(" <"+name+"> \"=\" AttrValue()"); pStream.println(" <"+name+"> \"=\" AttrValue()");
// pStream.println(" <"+name.toUpperCase()+"> \"=\" AttrValue()");
pStream.println("}"); pStream.println("}");
} }
} }
void Start.genJavaCCTokens(PrintStream pStream) { void Start.genJavaCCTokens(PrintStream pStream) {
pStream.println("<DEFAULT, BOUNDS> TOKEN : /* Reserved Words */"); pStream.println("<DEFAULT> TOKEN : /* Reserved Words */");
pStream.println("{"); pStream.println("{");
Hashtable h = elementTypes(); Hashtable h = elementTypes();
h.putAll(attributeTypes()); h.putAll(attributeTypes());
...@@ -250,18 +283,14 @@ aspect GenJavaCC { ...@@ -250,18 +283,14 @@ aspect GenJavaCC {
pStream.println(" | <DOCTYPE : \"DOCTYPE\">"); pStream.println(" | <DOCTYPE : \"DOCTYPE\">");
pStream.println(" | <PUBLIC : \"PUBLIC\">"); pStream.println(" | <PUBLIC : \"PUBLIC\">");
pStream.println(" | <encoding\t\t: \"encoding\">"); pStream.println(" | <encoding\t\t: \"encoding\">");
pStream.println(" | <version\t\t: \"version\">");
pStream.println(" | <XsiNoNamespaceSchemaLocation\t\t: \"xsi:noNamespaceSchemaLocation\">");
pStream.println(" | <XmlnsXsi\t\t: \"xmlns:xsi\">");
while (iter.hasNext()) { while (iter.hasNext()) {
String name = ((ComplexElement) iter.next()).name(); String name = ((ComplexElement) iter.next()).name();
pStream.println(" | <"+fixName(name)+ pStream.println(" | <"+fixName(name)+
// pStream.println(" | <"+fixName(name).toUpperCase()+
"\t\t: \""+name+"\" >"); "\t\t: \""+name+"\" >");
} }
// iter = attributeTypes().iterator();
// while (iter.hasNext()) {
// String name = ((ComplexElement) iter.next()).name();
// pStream.println(" | <"+fixName(name).toUpperCase()+
// "\t\t: \""+name+"\" >");
// }
pStream.println("}// Reserved Words"); pStream.println("}// Reserved Words");
pStream.println(); pStream.println();
} }
...@@ -301,7 +330,7 @@ aspect Types { ...@@ -301,7 +330,7 @@ aspect Types {
} }
eq XsAttribute.attributeTypes(Hashtable h) { eq XsAttribute.attributeTypes(Hashtable h) {
if (hasName()) { if (hasName() && !defaultAttr()) {
h.put(name(),this); h.put(name(),this);
} }
super.attributeTypes(h); super.attributeTypes(h);
...@@ -311,7 +340,19 @@ aspect Types { ...@@ -311,7 +340,19 @@ aspect Types {
} }
aspect Misc { aspect Misc {
syn String ComplexElement.name() { static String XsAttribute.defAttrs[] = {"version"};
syn boolean XsAttribute.defaultAttr() {
String name = name();
for (int i=0; i<defAttrs.length; i++) {
if (name.equals(defAttrs[i])) {
return true;
}
}
return false;
}
syn lazy String ComplexElement.name() {
for (int i=0; i<getNumAttribute(); i++) { for (int i=0; i<getNumAttribute(); i++) {
if (getAttribute(i) instanceof Name) { if (getAttribute(i) instanceof Name) {
return getAttribute(i).getAttValue().getSTRING_LITERAL(). return getAttribute(i).getAttValue().getSTRING_LITERAL().
...@@ -322,7 +363,7 @@ aspect Misc { ...@@ -322,7 +363,7 @@ aspect Misc {
return "NoNameFound"; return "NoNameFound";
} }
syn boolean ComplexElement.hasName() { syn lazy boolean ComplexElement.hasName() {
for (int i=0; i<getNumAttribute(); i++) { for (int i=0; i<getNumAttribute(); i++) {
if (getAttribute(i) instanceof Name) { if (getAttribute(i) instanceof Name) {
return true; return true;
......
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
aspect JavaCCChunks { aspect JavaCCChunks {
void Start.genJavaCCHeader(PrintStream pStream) { void Start.genJavaCCHeader(PrintStream pStream) {
pStream.println("/* -*-Java-*- */");
pStream.println();
pStream.println("options {"); pStream.println("options {");
pStream.println(" MULTI = true;"); pStream.println(" MULTI = true;");
pStream.println(" VISITOR = true;"); pStream.println(" VISITOR = true;");
...@@ -30,7 +32,8 @@ aspect JavaCCChunks { ...@@ -30,7 +32,8 @@ aspect JavaCCChunks {
pStream.println("//----------------------------------------------//"); pStream.println("//----------------------------------------------//");
pStream.println("// LEXICAL TOKENS //"); pStream.println("// LEXICAL TOKENS //");
pStream.println("//----------------------------------------------//"); pStream.println("//----------------------------------------------//");
pStream.println("<DEFAULT, BOUNDS> SKIP : /* WHITE SPACE */"); // pStream.println("<DEFAULT, BOUNDS> SKIP : /* WHITE SPACE */");
pStream.println("<DEFAULT,BOUNDS> SPECIAL_TOKEN : /* WHITE SPACE */");
pStream.println("{"); pStream.println("{");
pStream.println(" \" \""); pStream.println(" \" \"");
pStream.println(" |"); pStream.println(" |");
...@@ -43,7 +46,7 @@ aspect JavaCCChunks { ...@@ -43,7 +46,7 @@ aspect JavaCCChunks {
pStream.println(" \"\\f\""); pStream.println(" \"\\f\"");
pStream.println("}// WHITE SPACE"); pStream.println("}// WHITE SPACE");
pStream.println(); pStream.println();
pStream.println("SPECIAL_TOKEN : /* COMMENTS */ "); pStream.println("<DEFAULT,BOUNDS> SPECIAL_TOKEN : /* COMMENTS */ ");
pStream.println("{"); pStream.println("{");
pStream.println(" < \"<!--\" ( ~[\"-\"] | ( \"-\" ~[\"-\"] ) )* \"-->\">"); pStream.println(" < \"<!--\" ( ~[\"-\"] | ( \"-\" ~[\"-\"] ) )* \"-->\">");
pStream.println("}// COMMENTS"); pStream.println("}// COMMENTS");
...@@ -167,11 +170,12 @@ aspect JavaCCChunks { ...@@ -167,11 +170,12 @@ aspect JavaCCChunks {
pStream.println(" | < LBRACKET : \"[\" >"); pStream.println(" | < LBRACKET : \"[\" >");
pStream.println(" | < RBRACKET : \"]\" >"); pStream.println(" | < RBRACKET : \"]\" >");
pStream.println(" | < SEMICOLON : \";\" >"); pStream.println(" | < SEMICOLON : \";\" >");
pStream.println(" | < LTBANG : \"<!\" >"); pStream.println(" | < LTSLASH : \"</\" > : DEFAULT");
pStream.println(" | < LT : \"<\" >"); pStream.println(" | < LTBANG : \"<!\" > : DEFAULT");
pStream.println(" | < LTQ : \"<?\" >"); pStream.println(" | < LT : \"<\" > : DEFAULT");
pStream.println(" | < GT : \">\" >"); pStream.println(" | < LTQ : \"<?\" > : DEFAULT");
pStream.println(" | < QGT : \"?>\" >"); pStream.println(" | < GT : \">\" > : BOUNDS");
pStream.println(" | < QGT : \"?>\" > : BOUNDS");
pStream.println("}// SEPARATORS"); pStream.println("}// SEPARATORS");
} }
......
...@@ -145,7 +145,7 @@ ...@@ -145,7 +145,7 @@
<task name="selection-text-area" id="tid005"> <task name="selection-text-area" id="tid005">
<args> <args>
<arg0>robot</arg0> <arg0>robot</arg0>
<arg1>text area</arg1> <arg1>i text area</arg1>
</args> </args>
<one-of> <one-of>
<option> <option>
......
...@@ -113,14 +113,6 @@ ...@@ -113,14 +113,6 @@
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
<!-- <xs:complexType name="MetaArgsType"> -->
<!-- <xs:simpleContent> -->
<!-- <xs:extension base="xs:string"> -->
<!-- </xs:extension> -->
<!-- </xs:simpleContent> -->
<!-- <xs:attribute name="name" type="xs:string" /> -->
<!-- </xs:complexType> -->
<xs:complexType name="TaskSequenceType"> <xs:complexType name="TaskSequenceType">
<xs:sequence> <xs:sequence>
<xs:element name="task" type="TaskType" maxOccurs="unbounded"/> <xs:element name="task" type="TaskType" maxOccurs="unbounded"/>
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
</fileset> </fileset>
</jastadd> </jastadd>
<jjtree <jjtree
target="x3d.jjt" target="configForm.jjt"
outputdirectory="${package}" outputdirectory="${package}"
javacchome="${javacc.home}" javacchome="${javacc.home}"
buildnodefiles="true" buildnodefiles="true"
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
nodepackage="${package}" nodepackage="${package}"
/> />
<javacc <javacc
target="${package}/x3d.jj" target="${package}/configForm.jj"
outputdirectory="${package}" outputdirectory="${package}"
javacchome="${javacc.home}" javacchome="${javacc.home}"
buildparser="true" buildparser="true"
...@@ -83,11 +83,11 @@ ...@@ -83,11 +83,11 @@
<!-- <beaver file="parser/JavaParser.beaver" terminalNames="yes" compress="no" useSwitch="yes"/> --> <!-- <beaver file="parser/JavaParser.beaver" terminalNames="yes" compress="no" useSwitch="yes"/> -->
</target> </target>
<target name="test" depends="build"> <!-- <target name="test" depends="build"> -->
<java classname="GenCompiler" classpath="."> <!-- <java classname="GenCompiler" classpath="."> -->
<arg value="GripperOntology_experimental3.owl" /> <!-- <arg value="GripperOntology_experimental3.owl" /> -->
</java> <!-- </java> -->
</target> <!-- </target> -->
<!-- remove generated source files and .class files --> <!-- remove generated source files and .class files -->
<target name="clean" depends="cleanGen"> <target name="clean" depends="cleanGen">
...@@ -97,13 +97,13 @@ ...@@ -97,13 +97,13 @@
</delete> </delete>
</target> </target>
<target name="jar" depends="build"> <!-- <target name="jar" depends="build"> -->
<jar destfile="X3DCompiler.jar" basedir="." includes="**/*.class" excludes="test/**"> <!-- <jar destfile="X3DCompiler.jar" basedir="." includes="**/*.class" excludes="test/**"> -->
<manifest> <!-- <manifest> -->
<attribute name="Main-Class" value="GenOntology"/> <!-- <attribute name="Main-Class" value="GenOntology"/> -->
</manifest> <!-- </manifest> -->
</jar> <!-- </jar> -->
</target> <!-- </target> -->
<!-- remove generated source files and their .class files --> <!-- remove generated source files and their .class files -->
<target name="cleanGen"> <target name="cleanGen">
......
...@@ -36,6 +36,7 @@ XsMinLength : ComplexElement; ...@@ -36,6 +36,7 @@ XsMinLength : ComplexElement;
XsPattern : ComplexElement; XsPattern : ComplexElement;
XsRestriction : ComplexElement; XsRestriction : ComplexElement;
XsSequence : ComplexElement; XsSequence : ComplexElement;
XsSimpleContent : ComplexElement;
XsSimpleType : ComplexElement; XsSimpleType : ComplexElement;
XsSchema : ComplexElement; XsSchema : ComplexElement;
XsWhiteSpace : ComplexElement; XsWhiteSpace : ComplexElement;
......
...@@ -89,6 +89,7 @@ SPECIAL_TOKEN : /* COMMENTS */ ...@@ -89,6 +89,7 @@ SPECIAL_TOKEN : /* COMMENTS */
| < XS_RESTRICTION : "xs:restriction" > | < XS_RESTRICTION : "xs:restriction" >
| < XS_SEQUENCE : "xs:sequence" > | < XS_SEQUENCE : "xs:sequence" >
| < XS_SCHEMA : "xs:schema" > | < XS_SCHEMA : "xs:schema" >
| < XS_SIMPLECONTENT : "xs:simpleContent" >
| < XS_SIMPLETYPE : "xs:simpleType" > | < XS_SIMPLETYPE : "xs:simpleType" >
| < XS_WHITESPACE : "xs:whiteSpace" > | < XS_WHITESPACE : "xs:whiteSpace" >
| < ABSTRACT : "abstract" > | < ABSTRACT : "abstract" >
...@@ -244,6 +245,7 @@ SPECIAL_TOKEN : /* COMMENTS */ ...@@ -244,6 +245,7 @@ SPECIAL_TOKEN : /* COMMENTS */
| < COMMA : "," > | < COMMA : "," >
| < DOT : "." > | < DOT : "." >
| < SQUOTE : "'" > | < SQUOTE : "'" >
| < AT : "@" >
}// SEPARATORS }// SEPARATORS
...@@ -354,6 +356,7 @@ void Element() : {} ...@@ -354,6 +356,7 @@ void Element() : {}
| XsPattern() | XsPattern()
| XsRestriction() | XsRestriction()
| XsSequence() | XsSequence()
| XsSimpleContent()
| XsSimpleType() | XsSimpleType()
| XsWhiteSpace() | XsWhiteSpace()
)) ))
...@@ -486,6 +489,12 @@ void XsSequence() #XsSequence : {} ...@@ -486,6 +489,12 @@ void XsSequence() #XsSequence : {}
(">" ElementList() "</" <XS_SEQUENCE> ">" | ElementList() "/>") (">" ElementList() "</" <XS_SEQUENCE> ">" | ElementList() "/>")
} }
void XsSimpleContent() #XsSimpleContent : {}
{
<XS_SIMPLECONTENT> AttributeList()
(">" ElementList() "</" <XS_SIMPLECONTENT> ">" | ElementList() "/>")
}
void XsSimpleType() #XsSimpleType : {} void XsSimpleType() #XsSimpleType : {}
{ {
<XS_SIMPLETYPE> AttributeList() <XS_SIMPLETYPE> AttributeList()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment