options{ STATIC = false; } PARSER_BEGIN(XMLParser) package tmp.generated_xml; import java.io.*; import java.util.*; import cide.gast.*; import cide.gparser.*; public class XMLParser{ } PARSER_END(XMLParser) <*> TOKEN : { <#ALPHA_CHAR: ["a"-"z", "A"-"Z"] > | <#NUM_CHAR: ["0"-"9"] > | <#ALPHANUM_CHAR: [ "a"-"z", "A"-"Z", "0"-"9" ] > | <#IDENTIFIER_CHAR: [ "a"-"z", "A"-"Z", "0"-"9", "_", "-", "." ] > | <#IDENTIFIER_PART: ()* > | <#IDENTIFIER: (":" )? > | <#QUOTED_STRING_NB: ( "'" ( ~["'", "\r", "\n"] )* "'" ) | ( "\"" ( ~["\"", "\r", "\n"] )* "\"" ) > | <#QUOTED_STRING: ( "'" ( ~["'"] )* "'" ) | ( "\"" ( ~["\""] )* "\"" ) > | <#WHITESPACE: ( " " | "\t" | "\n" | "\r" ) > | <#NEWLINE: ( "\r\n" | "\r" | "\n" ) > | <#QUOTE: ( "'" | "\"" )> | <#CPB: ">"> } TOKEN : { : LexElement_Inside | : LexElement_Start | : LexElement_Start | : LexPI | : LexComment | : LexCDATA //| : LexDecl | } TOKEN : { > : LexElement_Inside } SPECIAL_TOKEN : { < ()+ > } TOKEN : { > | > : DEFAULT | " > : DEFAULT | " > : DEFAULT | " > : DEFAULT } MORE : { <~[] > } TOKEN : { < PI_END: "?>" > : DEFAULT } MORE : { <~[] > } TOKEN : { < CDEND: "]]>" > : DEFAULT } // MORE : { <~[] > } // TOKEN : //{ // < DECLEND: > : DEFAULT //| < DECLINNERSTART: "["> : LexDeclInner //} // MORE : { <~[] > } // TOKEN : { // < DECLINNEREND: "]"> : LexDecl //} GRAMMARSTART Document: Prolog Element (Misc)*; Misc: Comment | LOOK_AHEAD("{getToken(1).image.trim().equals(\"\")}") | PI; PI: "; Prolog: XMLDecl (Misc)*;// [DoctypeDecl]; XMLDecl : "?>"; //DoctypeDecl: "[" ]*/ (Misc)*; CDSect : "; Comment: "