From 32d3b5d2edd4eae2ad09d5cddd80ce378b093344 Mon Sep 17 00:00:00 2001 From: Anders Nilsson <andersn@control.lth.se> Date: Tue, 27 May 2014 16:08:25 +0200 Subject: [PATCH] Fixes to handle MS project schema --- xmlschema.ast | 1 + xmlschema.jjt | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/xmlschema.ast b/xmlschema.ast index 0a4b7cf..53dc470 100644 --- a/xmlschema.ast +++ b/xmlschema.ast @@ -30,6 +30,7 @@ XmlHeader ::= Attribute*; abstract Element; abstract ComplexElement : Element ::= Attribute* Element*; +XsAll : ComplexElement; XsAnnotation : ComplexElement; XsAny : ComplexElement; XsAnyAttribute : ComplexElement; diff --git a/xmlschema.jjt b/xmlschema.jjt index c6e4e6e..139ae28 100644 --- a/xmlschema.jjt +++ b/xmlschema.jjt @@ -80,7 +80,8 @@ SPECIAL_TOKEN : /* COMMENTS */ <DEFAULT, BOUNDS> TOKEN : /* RESERVED WORDS AND LITERALS */ { - < XS_ANNOTATION : "xs:annotation" > + < XS_ALL : "xs:all" > + | < XS_ANNOTATION : "xs:annotation" > | < XS_ANY : "xs:any" > | < XS_ANYATTRIBUTE : "xs:anyAttribute" > | < XS_APPINFO : "xs:appinfo" > @@ -256,8 +257,8 @@ SPECIAL_TOKEN : /* COMMENTS */ { < LPAREN : "(" > | < RPAREN : ")" > - | < CDATA_START : "<![CDATA[" > - | < CDATA_END : "]]>" > + | < CDATA_START : "<![CDATA[" > + | < CDATA_END : "]]>" > | < LBRACE : "{" > | < RBRACE : "}" > | < LBRACKET : "[" > @@ -266,7 +267,9 @@ SPECIAL_TOKEN : /* COMMENTS */ | < COMMA : "," > | < DOT : "." > | < SQUOTE : "'" > - | < AT : "@" > + | < AT : "@" > + | < PERCENT : "%" > + | < QUESTION : "?" > }// SEPARATORS @@ -357,6 +360,7 @@ void ElementList() #List : {} void Element() : {} { ( "<" (XsAnnotation() + | XsAll() | XsAny() | XsAnyAttribute() | XsAppinfo() @@ -393,6 +397,12 @@ void XsAnnotation() #XsAnnotation : {} (">" ElementList() "</" <XS_ANNOTATION> ">" | ElementList() "/>") } +void XsAll() #XsAll : {} +{ + <XS_ALL> AttributeList() + (">" ElementList() "</" <XS_ALL> ">" | ElementList() "/>") +} + void XsAny() #XsAny : {} { <XS_ANY> AttributeList() -- GitLab