header { package org.apache.directory.shared.ldap.schema; } class LdapSchemaDefinitionsBaseParser extends Parser; options { importVocab=LdapSchemaDefinitionsBaseLexer; k=1; } keystring : ALPHA ( ALPHA | ( Zero | OneToNine ) | HYPHEN )*; number : Zero | OneToNine ( Zero | OneToNine )*; numericoid : number ( DOT number )+; descr : keystring; oid : numericoid | keystring; noidlen : numericoid ( LCURLY number RCURLY )?; oids : oid | ( LPAREN ( SPACE )* oid ( SPACE )* ( DOLLAR ( SPACE )* oid ( SPACE ) )* RPAREN ); extensions : ( options { greedy=true; } : ( SPACE )+ xstring ( SPACE )+ qdstrings )*; xstring : XHYPHEN ( ALPHA | HYPHEN | USCORE )+; /* qdescrs : qdescr | ( LPAREN ( SPACE )* ( qdescr ( ( SPACE )+ qdescr )* ( SPACE )* )? RPAREN ); */ qdescrs : qdescr | ( LPAREN ( SPACE )* ( qdescr ( qdescr ( SPACE )+ )* )? RPAREN ); qdescr : SQUOTE descr SQUOTE; /* qdstrings : qdstring | ( LPAREN ( SPACE )* ( qdstring ( ( SPACE )+ qdstring )* ( SPACE )* )? RPAREN ); */ qdstrings : qdstring | ( LPAREN ( SPACE )* ( qdstring ( qdstring ( SPACE )+ )* )? RPAREN ); qdstring : SQUOTE ( QS | QQ | UTF8 )+ SQUOTE;