You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2961 lines
51 KiB
2961 lines
51 KiB
// $ANTLR 2.7.3rc3: "antlr.g" -> "ANTLRParser.java"$ |
|
|
|
package com.fr.third.antlr; |
|
|
|
|
|
import com.fr.third.antlr.collections.impl.BitSet; |
|
|
|
public class ANTLRParser extends com.fr.third.antlr.LLkParser implements ANTLRTokenTypes |
|
{ |
|
|
|
private static final boolean DEBUG_PARSER = false; |
|
|
|
ANTLRGrammarParseBehavior behavior; |
|
Tool antlrTool; |
|
protected int blockNesting= -1; |
|
|
|
public ANTLRParser( |
|
TokenBuffer tokenBuf, |
|
ANTLRGrammarParseBehavior behavior_, |
|
Tool tool_ |
|
) { |
|
super(tokenBuf, 1); |
|
tokenNames = _tokenNames; |
|
behavior = behavior_; |
|
antlrTool = tool_; |
|
} |
|
|
|
public void reportError(String s) { |
|
antlrTool.error(s, getFilename(), -1, -1); |
|
} |
|
|
|
public void reportError(RecognitionException e) { |
|
reportError(e, e.getErrorMessage()); |
|
} |
|
|
|
public void reportError(RecognitionException e, String s) { |
|
antlrTool.error(s, e.getFilename(), e.getLine(), e.getColumn()); |
|
} |
|
|
|
public void reportWarning(String s) { |
|
antlrTool.warning(s, getFilename(), -1, -1); |
|
} |
|
|
|
private boolean lastInRule() throws TokenStreamException { |
|
if ( blockNesting==0 && (LA(1)==SEMI || LA(1)==LITERAL_exception || LA(1)==OR) ) { |
|
return true; |
|
} |
|
return false; |
|
} |
|
|
|
private void checkForMissingEndRule(Token label) { |
|
if ( label.getColumn()==1 ) { |
|
antlrTool.warning("did you forget to terminate previous rule?", getFilename(), label.getLine(), label.getColumn()); |
|
} |
|
} |
|
|
|
protected ANTLRParser(TokenBuffer tokenBuf, int k) { |
|
super(tokenBuf,k); |
|
tokenNames = _tokenNames; |
|
} |
|
|
|
public ANTLRParser(TokenBuffer tokenBuf) { |
|
this(tokenBuf,2); |
|
} |
|
|
|
protected ANTLRParser(TokenStream lexer, int k) { |
|
super(lexer,k); |
|
tokenNames = _tokenNames; |
|
} |
|
|
|
public ANTLRParser(TokenStream lexer) { |
|
this(lexer,2); |
|
} |
|
|
|
public ANTLRParser(ParserSharedInputState state) { |
|
super(state,2); |
|
tokenNames = _tokenNames; |
|
} |
|
|
|
public final void grammar() throws RecognitionException, TokenStreamException { |
|
|
|
Token n = null; |
|
Token h = null; |
|
|
|
try { // for error handling |
|
{ |
|
_loop4: |
|
do { |
|
if ((LA(1)==LITERAL_header)) { |
|
if ( inputState.guessing==0 ) { |
|
|
|
n = null; // RK: prevent certain orders of header actions |
|
// overwriting eachother. |
|
|
|
} |
|
match(LITERAL_header); |
|
{ |
|
switch ( LA(1)) { |
|
case STRING_LITERAL: |
|
{ |
|
n = LT(1); |
|
match(STRING_LITERAL); |
|
break; |
|
} |
|
case ACTION: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
h = LT(1); |
|
match(ACTION); |
|
if ( inputState.guessing==0 ) { |
|
|
|
// store the header action |
|
// FIXME: 'n' should be checked for validity |
|
behavior.refHeaderAction(n,h); |
|
|
|
} |
|
} |
|
else { |
|
break _loop4; |
|
} |
|
|
|
} while (true); |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case OPTIONS: |
|
{ |
|
fileOptionsSpec(); |
|
break; |
|
} |
|
case EOF: |
|
case ACTION: |
|
case DOC_COMMENT: |
|
case LITERAL_lexclass: |
|
case LITERAL_class: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
{ |
|
_loop7: |
|
do { |
|
if (((LA(1) >= ACTION && LA(1) <= LITERAL_class))) { |
|
classDef(); |
|
} |
|
else { |
|
break _loop7; |
|
} |
|
|
|
} while (true); |
|
} |
|
match(Token.EOF_TYPE); |
|
} |
|
catch (RecognitionException ex) { |
|
if (inputState.guessing==0) { |
|
|
|
reportError(ex, "rule grammar trapped:\n"+ex.toString()); |
|
consumeUntil(EOF); |
|
|
|
} else { |
|
throw ex; |
|
} |
|
} |
|
} |
|
|
|
public final void fileOptionsSpec() throws RecognitionException, TokenStreamException { |
|
|
|
Token idTok; Token value; |
|
|
|
match(OPTIONS); |
|
{ |
|
_loop18: |
|
do { |
|
if ((LA(1)==TOKEN_REF||LA(1)==RULE_REF)) { |
|
idTok=id(); |
|
match(ASSIGN); |
|
value=optionValue(); |
|
if ( inputState.guessing==0 ) { |
|
behavior.setFileOption(idTok, value,getInputState().filename); |
|
} |
|
match(SEMI); |
|
} |
|
else { |
|
break _loop18; |
|
} |
|
|
|
} while (true); |
|
} |
|
match(RCURLY); |
|
} |
|
|
|
public final void classDef() throws RecognitionException, TokenStreamException { |
|
|
|
Token a = null; |
|
Token d = null; |
|
String doc=null; |
|
|
|
try { // for error handling |
|
{ |
|
switch ( LA(1)) { |
|
case ACTION: |
|
{ |
|
a = LT(1); |
|
match(ACTION); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refPreambleAction(a); |
|
} |
|
break; |
|
} |
|
case DOC_COMMENT: |
|
case LITERAL_lexclass: |
|
case LITERAL_class: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case DOC_COMMENT: |
|
{ |
|
d = LT(1); |
|
match(DOC_COMMENT); |
|
if ( inputState.guessing==0 ) { |
|
doc=d.getText(); |
|
} |
|
break; |
|
} |
|
case LITERAL_lexclass: |
|
case LITERAL_class: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
{ |
|
boolean synPredMatched13 = false; |
|
if (((LA(1)==LITERAL_lexclass||LA(1)==LITERAL_class) && (LA(2)==TOKEN_REF||LA(2)==RULE_REF))) { |
|
int _m13 = mark(); |
|
synPredMatched13 = true; |
|
inputState.guessing++; |
|
try { |
|
{ |
|
switch ( LA(1)) { |
|
case LITERAL_lexclass: |
|
{ |
|
match(LITERAL_lexclass); |
|
break; |
|
} |
|
case LITERAL_class: |
|
{ |
|
match(LITERAL_class); |
|
id(); |
|
match(LITERAL_extends); |
|
match(LITERAL_Lexer); |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
} |
|
catch (RecognitionException pe) { |
|
synPredMatched13 = false; |
|
} |
|
rewind(_m13); |
|
inputState.guessing--; |
|
} |
|
if ( synPredMatched13 ) { |
|
lexerSpec(doc); |
|
} |
|
else { |
|
boolean synPredMatched15 = false; |
|
if (((LA(1)==LITERAL_class) && (LA(2)==TOKEN_REF||LA(2)==RULE_REF))) { |
|
int _m15 = mark(); |
|
synPredMatched15 = true; |
|
inputState.guessing++; |
|
try { |
|
{ |
|
match(LITERAL_class); |
|
id(); |
|
match(LITERAL_extends); |
|
match(LITERAL_TreeParser); |
|
} |
|
} |
|
catch (RecognitionException pe) { |
|
synPredMatched15 = false; |
|
} |
|
rewind(_m15); |
|
inputState.guessing--; |
|
} |
|
if ( synPredMatched15 ) { |
|
treeParserSpec(doc); |
|
} |
|
else if ((LA(1)==LITERAL_class) && (LA(2)==TOKEN_REF||LA(2)==RULE_REF)) { |
|
parserSpec(doc); |
|
} |
|
else { |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
rules(); |
|
if ( inputState.guessing==0 ) { |
|
behavior.endGrammar(); |
|
} |
|
} |
|
catch (RecognitionException ex) { |
|
if (inputState.guessing==0) { |
|
|
|
if ( ex instanceof NoViableAltException ) { |
|
NoViableAltException e = (NoViableAltException)ex; |
|
// RK: These probably generate inconsequent error messages... |
|
// have to see how this comes out.. |
|
if ( e.token.getType()==DOC_COMMENT ) { |
|
reportError(ex, "JAVADOC comments may only prefix rules and grammars"); |
|
} |
|
else { |
|
reportError(ex, "rule classDef trapped:\n"+ex.toString()); |
|
} |
|
} |
|
else { |
|
reportError(ex, "rule classDef trapped:\n"+ex.toString()); |
|
} |
|
behavior.abortGrammar(); |
|
boolean consuming = true; |
|
// consume everything until the next class definition or EOF |
|
while (consuming) { |
|
consume(); |
|
switch(LA(1)) { |
|
case LITERAL_class: |
|
case LITERAL_lexclass: |
|
case EOF: |
|
consuming = false; |
|
break; |
|
} |
|
} |
|
|
|
} else { |
|
throw ex; |
|
} |
|
} |
|
} |
|
|
|
public final Token id() throws RecognitionException, TokenStreamException { |
|
Token idTok ; |
|
|
|
Token a = null; |
|
Token b = null; |
|
idTok = null; |
|
|
|
switch ( LA(1)) { |
|
case TOKEN_REF: |
|
{ |
|
a = LT(1); |
|
match(TOKEN_REF); |
|
if ( inputState.guessing==0 ) { |
|
idTok = a; |
|
} |
|
break; |
|
} |
|
case RULE_REF: |
|
{ |
|
b = LT(1); |
|
match(RULE_REF); |
|
if ( inputState.guessing==0 ) { |
|
idTok = b; |
|
} |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
return idTok ; |
|
} |
|
|
|
public final void lexerSpec( |
|
String doc |
|
) throws RecognitionException, TokenStreamException { |
|
|
|
Token lc = null; |
|
Token a = null; |
|
|
|
Token idTok; |
|
String sup=null; |
|
|
|
|
|
{ |
|
switch ( LA(1)) { |
|
case LITERAL_lexclass: |
|
{ |
|
lc = LT(1); |
|
match(LITERAL_lexclass); |
|
idTok=id(); |
|
if ( inputState.guessing==0 ) { |
|
|
|
antlrTool.warning("lexclass' is deprecated; use 'class X extends Lexer'", |
|
getFilename(), lc.getLine(), lc.getColumn()); |
|
// System.out.println("warning: line " + lc.getLine() + ": 'lexclass' is deprecated; use 'class X extends Lexer'"); |
|
|
|
} |
|
break; |
|
} |
|
case LITERAL_class: |
|
{ |
|
match(LITERAL_class); |
|
idTok=id(); |
|
match(LITERAL_extends); |
|
match(LITERAL_Lexer); |
|
{ |
|
switch ( LA(1)) { |
|
case LPAREN: |
|
{ |
|
sup=superClass(); |
|
break; |
|
} |
|
case SEMI: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.startLexer(getFilename(), idTok,sup,doc); |
|
} |
|
match(SEMI); |
|
{ |
|
switch ( LA(1)) { |
|
case OPTIONS: |
|
{ |
|
lexerOptionsSpec(); |
|
break; |
|
} |
|
case ACTION: |
|
case DOC_COMMENT: |
|
case TOKENS: |
|
case TOKEN_REF: |
|
case LITERAL_protected: |
|
case LITERAL_public: |
|
case LITERAL_private: |
|
case RULE_REF: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.endOptions(); |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case TOKENS: |
|
{ |
|
tokensSpec(); |
|
break; |
|
} |
|
case ACTION: |
|
case DOC_COMMENT: |
|
case TOKEN_REF: |
|
case LITERAL_protected: |
|
case LITERAL_public: |
|
case LITERAL_private: |
|
case RULE_REF: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case ACTION: |
|
{ |
|
a = LT(1); |
|
match(ACTION); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refMemberAction(a); |
|
} |
|
break; |
|
} |
|
case DOC_COMMENT: |
|
case TOKEN_REF: |
|
case LITERAL_protected: |
|
case LITERAL_public: |
|
case LITERAL_private: |
|
case RULE_REF: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
} |
|
|
|
public final void treeParserSpec( |
|
String doc |
|
) throws RecognitionException, TokenStreamException { |
|
|
|
Token a = null; |
|
|
|
Token idTok; |
|
String sup=null; |
|
|
|
|
|
match(LITERAL_class); |
|
idTok=id(); |
|
match(LITERAL_extends); |
|
match(LITERAL_TreeParser); |
|
{ |
|
switch ( LA(1)) { |
|
case LPAREN: |
|
{ |
|
sup=superClass(); |
|
break; |
|
} |
|
case SEMI: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.startTreeWalker(getFilename(), idTok,sup,doc); |
|
} |
|
match(SEMI); |
|
{ |
|
switch ( LA(1)) { |
|
case OPTIONS: |
|
{ |
|
treeParserOptionsSpec(); |
|
break; |
|
} |
|
case ACTION: |
|
case DOC_COMMENT: |
|
case TOKENS: |
|
case TOKEN_REF: |
|
case LITERAL_protected: |
|
case LITERAL_public: |
|
case LITERAL_private: |
|
case RULE_REF: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.endOptions(); |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case TOKENS: |
|
{ |
|
tokensSpec(); |
|
break; |
|
} |
|
case ACTION: |
|
case DOC_COMMENT: |
|
case TOKEN_REF: |
|
case LITERAL_protected: |
|
case LITERAL_public: |
|
case LITERAL_private: |
|
case RULE_REF: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case ACTION: |
|
{ |
|
a = LT(1); |
|
match(ACTION); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refMemberAction(a); |
|
} |
|
break; |
|
} |
|
case DOC_COMMENT: |
|
case TOKEN_REF: |
|
case LITERAL_protected: |
|
case LITERAL_public: |
|
case LITERAL_private: |
|
case RULE_REF: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
} |
|
|
|
public final void parserSpec( |
|
String doc |
|
) throws RecognitionException, TokenStreamException { |
|
|
|
Token a = null; |
|
|
|
Token idTok; |
|
String sup=null; |
|
|
|
|
|
match(LITERAL_class); |
|
idTok=id(); |
|
{ |
|
switch ( LA(1)) { |
|
case LITERAL_extends: |
|
{ |
|
match(LITERAL_extends); |
|
match(LITERAL_Parser); |
|
{ |
|
switch ( LA(1)) { |
|
case LPAREN: |
|
{ |
|
sup=superClass(); |
|
break; |
|
} |
|
case SEMI: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
break; |
|
} |
|
case SEMI: |
|
{ |
|
if ( inputState.guessing==0 ) { |
|
|
|
antlrTool.warning("use 'class X extends Parser'", getFilename(), idTok.getLine(), idTok.getColumn()); |
|
// System.out.println("warning: line " + |
|
// idTok.getLine() + ": use 'class X extends Parser'"); |
|
|
|
} |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.startParser(getFilename(), idTok, sup, doc); |
|
} |
|
match(SEMI); |
|
{ |
|
switch ( LA(1)) { |
|
case OPTIONS: |
|
{ |
|
parserOptionsSpec(); |
|
break; |
|
} |
|
case ACTION: |
|
case DOC_COMMENT: |
|
case TOKENS: |
|
case TOKEN_REF: |
|
case LITERAL_protected: |
|
case LITERAL_public: |
|
case LITERAL_private: |
|
case RULE_REF: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.endOptions(); |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case TOKENS: |
|
{ |
|
tokensSpec(); |
|
break; |
|
} |
|
case ACTION: |
|
case DOC_COMMENT: |
|
case TOKEN_REF: |
|
case LITERAL_protected: |
|
case LITERAL_public: |
|
case LITERAL_private: |
|
case RULE_REF: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case ACTION: |
|
{ |
|
a = LT(1); |
|
match(ACTION); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refMemberAction(a); |
|
} |
|
break; |
|
} |
|
case DOC_COMMENT: |
|
case TOKEN_REF: |
|
case LITERAL_protected: |
|
case LITERAL_public: |
|
case LITERAL_private: |
|
case RULE_REF: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
} |
|
|
|
public final void rules() throws RecognitionException, TokenStreamException { |
|
|
|
|
|
{ |
|
int _cnt68=0; |
|
_loop68: |
|
do { |
|
if ((_tokenSet_0.member(LA(1))) && (_tokenSet_1.member(LA(2)))) { |
|
rule(); |
|
} |
|
else { |
|
if ( _cnt68>=1 ) { break _loop68; } else {throw new NoViableAltException(LT(1), getFilename());} |
|
} |
|
|
|
_cnt68++; |
|
} while (true); |
|
} |
|
} |
|
|
|
public final Token optionValue() throws RecognitionException, TokenStreamException { |
|
Token retval ; |
|
|
|
Token sl = null; |
|
Token cl = null; |
|
Token il = null; |
|
retval = null; |
|
|
|
switch ( LA(1)) { |
|
case TOKEN_REF: |
|
case RULE_REF: |
|
{ |
|
retval=qualifiedID(); |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
{ |
|
sl = LT(1); |
|
match(STRING_LITERAL); |
|
if ( inputState.guessing==0 ) { |
|
retval = sl; |
|
} |
|
break; |
|
} |
|
case CHAR_LITERAL: |
|
{ |
|
cl = LT(1); |
|
match(CHAR_LITERAL); |
|
if ( inputState.guessing==0 ) { |
|
retval = cl; |
|
} |
|
break; |
|
} |
|
case INT: |
|
{ |
|
il = LT(1); |
|
match(INT); |
|
if ( inputState.guessing==0 ) { |
|
retval = il; |
|
} |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
return retval ; |
|
} |
|
|
|
public final void parserOptionsSpec() throws RecognitionException, TokenStreamException { |
|
|
|
Token idTok; Token value; |
|
|
|
match(OPTIONS); |
|
{ |
|
_loop21: |
|
do { |
|
if ((LA(1)==TOKEN_REF||LA(1)==RULE_REF)) { |
|
idTok=id(); |
|
match(ASSIGN); |
|
value=optionValue(); |
|
if ( inputState.guessing==0 ) { |
|
behavior.setGrammarOption(idTok, value); |
|
} |
|
match(SEMI); |
|
} |
|
else { |
|
break _loop21; |
|
} |
|
|
|
} while (true); |
|
} |
|
match(RCURLY); |
|
} |
|
|
|
public final void treeParserOptionsSpec() throws RecognitionException, TokenStreamException { |
|
|
|
Token idTok; Token value; |
|
|
|
match(OPTIONS); |
|
{ |
|
_loop24: |
|
do { |
|
if ((LA(1)==TOKEN_REF||LA(1)==RULE_REF)) { |
|
idTok=id(); |
|
match(ASSIGN); |
|
value=optionValue(); |
|
if ( inputState.guessing==0 ) { |
|
behavior.setGrammarOption(idTok, value); |
|
} |
|
match(SEMI); |
|
} |
|
else { |
|
break _loop24; |
|
} |
|
|
|
} while (true); |
|
} |
|
match(RCURLY); |
|
} |
|
|
|
public final void lexerOptionsSpec() throws RecognitionException, TokenStreamException { |
|
|
|
Token idTok; Token value; BitSet b; |
|
|
|
match(OPTIONS); |
|
{ |
|
_loop27: |
|
do { |
|
switch ( LA(1)) { |
|
case LITERAL_charVocabulary: |
|
{ |
|
match(LITERAL_charVocabulary); |
|
match(ASSIGN); |
|
b=charSet(); |
|
match(SEMI); |
|
if ( inputState.guessing==0 ) { |
|
behavior.setCharVocabulary(b); |
|
} |
|
break; |
|
} |
|
case TOKEN_REF: |
|
case RULE_REF: |
|
{ |
|
idTok=id(); |
|
match(ASSIGN); |
|
value=optionValue(); |
|
if ( inputState.guessing==0 ) { |
|
behavior.setGrammarOption(idTok, value); |
|
} |
|
match(SEMI); |
|
break; |
|
} |
|
default: |
|
{ |
|
break _loop27; |
|
} |
|
} |
|
} while (true); |
|
} |
|
match(RCURLY); |
|
} |
|
|
|
public final BitSet charSet() throws RecognitionException, TokenStreamException { |
|
BitSet b ; |
|
|
|
|
|
b = null; |
|
BitSet tmpSet = null; |
|
|
|
|
|
b=setBlockElement(); |
|
{ |
|
_loop34: |
|
do { |
|
if ((LA(1)==OR)) { |
|
match(OR); |
|
tmpSet=setBlockElement(); |
|
if ( inputState.guessing==0 ) { |
|
b.orInPlace(tmpSet); |
|
} |
|
} |
|
else { |
|
break _loop34; |
|
} |
|
|
|
} while (true); |
|
} |
|
return b ; |
|
} |
|
|
|
public final void subruleOptionsSpec() throws RecognitionException, TokenStreamException { |
|
|
|
Token idTok; Token value; |
|
|
|
match(OPTIONS); |
|
{ |
|
_loop30: |
|
do { |
|
if ((LA(1)==TOKEN_REF||LA(1)==RULE_REF)) { |
|
idTok=id(); |
|
match(ASSIGN); |
|
value=optionValue(); |
|
if ( inputState.guessing==0 ) { |
|
behavior.setSubruleOption(idTok, value); |
|
} |
|
match(SEMI); |
|
} |
|
else { |
|
break _loop30; |
|
} |
|
|
|
} while (true); |
|
} |
|
match(RCURLY); |
|
} |
|
|
|
/** Match a.b.c.d qualified ids; WILDCARD here is overloaded as |
|
* id separator; that is, I need a reference to the '.' token. |
|
*/ |
|
public final Token qualifiedID() throws RecognitionException, TokenStreamException { |
|
Token qidTok=null; |
|
|
|
|
|
StringBuffer buf = new StringBuffer(30); |
|
Token a; |
|
|
|
|
|
a=id(); |
|
if ( inputState.guessing==0 ) { |
|
buf.append(a.getText()); |
|
} |
|
{ |
|
_loop144: |
|
do { |
|
if ((LA(1)==WILDCARD)) { |
|
match(WILDCARD); |
|
a=id(); |
|
if ( inputState.guessing==0 ) { |
|
buf.append('.'); buf.append(a.getText()); |
|
} |
|
} |
|
else { |
|
break _loop144; |
|
} |
|
|
|
} while (true); |
|
} |
|
if ( inputState.guessing==0 ) { |
|
|
|
// can use either TOKEN_REF or RULE_REF; should |
|
// really create a QID or something instead. |
|
qidTok = new CommonToken(TOKEN_REF, buf.toString()); |
|
qidTok.setLine(a.getLine()); |
|
|
|
} |
|
return qidTok; |
|
} |
|
|
|
public final BitSet setBlockElement() throws RecognitionException, TokenStreamException { |
|
BitSet b ; |
|
|
|
Token c1 = null; |
|
Token c2 = null; |
|
|
|
b = null; |
|
int rangeMin = 0; |
|
|
|
|
|
c1 = LT(1); |
|
match(CHAR_LITERAL); |
|
if ( inputState.guessing==0 ) { |
|
|
|
rangeMin = ANTLRLexer.tokenTypeForCharLiteral(c1.getText()); |
|
b = BitSet.of(rangeMin); |
|
|
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case RANGE: |
|
{ |
|
match(RANGE); |
|
c2 = LT(1); |
|
match(CHAR_LITERAL); |
|
if ( inputState.guessing==0 ) { |
|
|
|
int rangeMax = ANTLRLexer.tokenTypeForCharLiteral(c2.getText()); |
|
if (rangeMax < rangeMin) { |
|
antlrTool.error("Malformed range line ", getFilename(), c1.getLine(), c1.getColumn()); |
|
} |
|
for (int i = rangeMin+1; i <= rangeMax; i++) { |
|
b.add(i); |
|
} |
|
|
|
} |
|
break; |
|
} |
|
case SEMI: |
|
case OR: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
return b ; |
|
} |
|
|
|
public final void tokensSpec() throws RecognitionException, TokenStreamException { |
|
|
|
Token t1 = null; |
|
Token s1 = null; |
|
Token s3 = null; |
|
|
|
match(TOKENS); |
|
{ |
|
int _cnt43=0; |
|
_loop43: |
|
do { |
|
if ((LA(1)==STRING_LITERAL||LA(1)==TOKEN_REF)) { |
|
{ |
|
switch ( LA(1)) { |
|
case TOKEN_REF: |
|
{ |
|
if ( inputState.guessing==0 ) { |
|
s1=null; |
|
} |
|
t1 = LT(1); |
|
match(TOKEN_REF); |
|
{ |
|
switch ( LA(1)) { |
|
case ASSIGN: |
|
{ |
|
match(ASSIGN); |
|
s1 = LT(1); |
|
match(STRING_LITERAL); |
|
break; |
|
} |
|
case SEMI: |
|
case OPEN_ELEMENT_OPTION: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.defineToken(t1, s1); |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case OPEN_ELEMENT_OPTION: |
|
{ |
|
tokensSpecOptions(t1); |
|
break; |
|
} |
|
case SEMI: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
{ |
|
s3 = LT(1); |
|
match(STRING_LITERAL); |
|
if ( inputState.guessing==0 ) { |
|
behavior.defineToken(null, s3); |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case OPEN_ELEMENT_OPTION: |
|
{ |
|
tokensSpecOptions(s3); |
|
break; |
|
} |
|
case SEMI: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
match(SEMI); |
|
} |
|
else { |
|
if ( _cnt43>=1 ) { break _loop43; } else {throw new NoViableAltException(LT(1), getFilename());} |
|
} |
|
|
|
_cnt43++; |
|
} while (true); |
|
} |
|
match(RCURLY); |
|
} |
|
|
|
public final void tokensSpecOptions( |
|
Token t |
|
) throws RecognitionException, TokenStreamException { |
|
|
|
|
|
Token o=null, v=null; |
|
|
|
|
|
match(OPEN_ELEMENT_OPTION); |
|
o=id(); |
|
match(ASSIGN); |
|
v=optionValue(); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refTokensSpecElementOption(t,o,v); |
|
} |
|
{ |
|
_loop46: |
|
do { |
|
if ((LA(1)==SEMI)) { |
|
match(SEMI); |
|
o=id(); |
|
match(ASSIGN); |
|
v=optionValue(); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refTokensSpecElementOption(t,o,v); |
|
} |
|
} |
|
else { |
|
break _loop46; |
|
} |
|
|
|
} while (true); |
|
} |
|
match(CLOSE_ELEMENT_OPTION); |
|
} |
|
|
|
public final String superClass() throws RecognitionException, TokenStreamException { |
|
String sup; |
|
|
|
sup=null; |
|
|
|
match(LPAREN); |
|
if ( inputState.guessing==0 ) { |
|
|
|
sup = LT(1).getText(); |
|
sup = StringUtils.stripFrontBack(sup, "\"", "\""); |
|
|
|
} |
|
{ |
|
match(STRING_LITERAL); |
|
} |
|
match(RPAREN); |
|
return sup; |
|
} |
|
|
|
public final void rule() throws RecognitionException, TokenStreamException { |
|
|
|
Token d = null; |
|
Token p1 = null; |
|
Token p2 = null; |
|
Token p3 = null; |
|
Token aa = null; |
|
Token rt = null; |
|
Token a = null; |
|
|
|
String access="public"; |
|
Token idTok; |
|
String doc=null; |
|
boolean ruleAutoGen = true; |
|
blockNesting = -1; // block increments, so -1 to make rule at level 0 |
|
|
|
|
|
{ |
|
switch ( LA(1)) { |
|
case DOC_COMMENT: |
|
{ |
|
d = LT(1); |
|
match(DOC_COMMENT); |
|
if ( inputState.guessing==0 ) { |
|
doc=d.getText(); |
|
} |
|
break; |
|
} |
|
case TOKEN_REF: |
|
case LITERAL_protected: |
|
case LITERAL_public: |
|
case LITERAL_private: |
|
case RULE_REF: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case LITERAL_protected: |
|
{ |
|
p1 = LT(1); |
|
match(LITERAL_protected); |
|
if ( inputState.guessing==0 ) { |
|
access=p1.getText(); |
|
} |
|
break; |
|
} |
|
case LITERAL_public: |
|
{ |
|
p2 = LT(1); |
|
match(LITERAL_public); |
|
if ( inputState.guessing==0 ) { |
|
access=p2.getText(); |
|
} |
|
break; |
|
} |
|
case LITERAL_private: |
|
{ |
|
p3 = LT(1); |
|
match(LITERAL_private); |
|
if ( inputState.guessing==0 ) { |
|
access=p3.getText(); |
|
} |
|
break; |
|
} |
|
case TOKEN_REF: |
|
case RULE_REF: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
idTok=id(); |
|
{ |
|
switch ( LA(1)) { |
|
case BANG: |
|
{ |
|
match(BANG); |
|
if ( inputState.guessing==0 ) { |
|
ruleAutoGen = false; |
|
} |
|
break; |
|
} |
|
case ACTION: |
|
case OPTIONS: |
|
case ARG_ACTION: |
|
case LITERAL_returns: |
|
case COLON: |
|
case LITERAL_throws: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
|
|
behavior.defineRuleName(idTok, access, ruleAutoGen, doc); |
|
|
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case ARG_ACTION: |
|
{ |
|
aa = LT(1); |
|
match(ARG_ACTION); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refArgAction(aa); |
|
} |
|
break; |
|
} |
|
case ACTION: |
|
case OPTIONS: |
|
case LITERAL_returns: |
|
case COLON: |
|
case LITERAL_throws: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case LITERAL_returns: |
|
{ |
|
match(LITERAL_returns); |
|
rt = LT(1); |
|
match(ARG_ACTION); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refReturnAction(rt); |
|
} |
|
break; |
|
} |
|
case ACTION: |
|
case OPTIONS: |
|
case COLON: |
|
case LITERAL_throws: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case LITERAL_throws: |
|
{ |
|
throwsSpec(); |
|
break; |
|
} |
|
case ACTION: |
|
case OPTIONS: |
|
case COLON: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case OPTIONS: |
|
{ |
|
ruleOptionsSpec(); |
|
break; |
|
} |
|
case ACTION: |
|
case COLON: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case ACTION: |
|
{ |
|
a = LT(1); |
|
match(ACTION); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refInitAction(a); |
|
} |
|
break; |
|
} |
|
case COLON: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
match(COLON); |
|
block(); |
|
match(SEMI); |
|
{ |
|
switch ( LA(1)) { |
|
case LITERAL_exception: |
|
{ |
|
exceptionGroup(); |
|
break; |
|
} |
|
case EOF: |
|
case ACTION: |
|
case DOC_COMMENT: |
|
case LITERAL_lexclass: |
|
case LITERAL_class: |
|
case TOKEN_REF: |
|
case LITERAL_protected: |
|
case LITERAL_public: |
|
case LITERAL_private: |
|
case RULE_REF: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.endRule(idTok.getText()); |
|
} |
|
} |
|
|
|
public final void throwsSpec() throws RecognitionException, TokenStreamException { |
|
|
|
|
|
String t=null; |
|
Token a,b; |
|
|
|
|
|
match(LITERAL_throws); |
|
a=id(); |
|
if ( inputState.guessing==0 ) { |
|
t=a.getText(); |
|
} |
|
{ |
|
_loop84: |
|
do { |
|
if ((LA(1)==COMMA)) { |
|
match(COMMA); |
|
b=id(); |
|
if ( inputState.guessing==0 ) { |
|
t+=","+b.getText(); |
|
} |
|
} |
|
else { |
|
break _loop84; |
|
} |
|
|
|
} while (true); |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.setUserExceptions(t); |
|
} |
|
} |
|
|
|
public final void ruleOptionsSpec() throws RecognitionException, TokenStreamException { |
|
|
|
Token idTok; Token value; |
|
|
|
match(OPTIONS); |
|
{ |
|
_loop81: |
|
do { |
|
if ((LA(1)==TOKEN_REF||LA(1)==RULE_REF)) { |
|
idTok=id(); |
|
match(ASSIGN); |
|
value=optionValue(); |
|
if ( inputState.guessing==0 ) { |
|
behavior.setRuleOption(idTok, value); |
|
} |
|
match(SEMI); |
|
} |
|
else { |
|
break _loop81; |
|
} |
|
|
|
} while (true); |
|
} |
|
match(RCURLY); |
|
} |
|
|
|
public final void block() throws RecognitionException, TokenStreamException { |
|
|
|
|
|
if ( inputState.guessing==0 ) { |
|
blockNesting++; |
|
} |
|
alternative(); |
|
{ |
|
_loop87: |
|
do { |
|
if ((LA(1)==OR)) { |
|
match(OR); |
|
alternative(); |
|
} |
|
else { |
|
break _loop87; |
|
} |
|
|
|
} while (true); |
|
} |
|
if ( inputState.guessing==0 ) { |
|
blockNesting--; |
|
} |
|
} |
|
|
|
public final void exceptionGroup() throws RecognitionException, TokenStreamException { |
|
|
|
|
|
if ( inputState.guessing==0 ) { |
|
behavior.beginExceptionGroup(); |
|
} |
|
{ |
|
int _cnt95=0; |
|
_loop95: |
|
do { |
|
if ((LA(1)==LITERAL_exception)) { |
|
exceptionSpec(); |
|
} |
|
else { |
|
if ( _cnt95>=1 ) { break _loop95; } else {throw new NoViableAltException(LT(1), getFilename());} |
|
} |
|
|
|
_cnt95++; |
|
} while (true); |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.endExceptionGroup(); |
|
} |
|
} |
|
|
|
public final void alternative() throws RecognitionException, TokenStreamException { |
|
|
|
boolean altAutoGen = true; |
|
|
|
{ |
|
switch ( LA(1)) { |
|
case BANG: |
|
{ |
|
match(BANG); |
|
if ( inputState.guessing==0 ) { |
|
altAutoGen=false; |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
case ACTION: |
|
case SEMI: |
|
case CHAR_LITERAL: |
|
case OR: |
|
case TOKEN_REF: |
|
case LPAREN: |
|
case RPAREN: |
|
case LITERAL_exception: |
|
case RULE_REF: |
|
case NOT_OP: |
|
case SEMPRED: |
|
case TREE_BEGIN: |
|
case WILDCARD: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.beginAlt(altAutoGen); |
|
} |
|
{ |
|
_loop91: |
|
do { |
|
if ((_tokenSet_2.member(LA(1)))) { |
|
element(); |
|
} |
|
else { |
|
break _loop91; |
|
} |
|
|
|
} while (true); |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case LITERAL_exception: |
|
{ |
|
exceptionSpecNoLabel(); |
|
break; |
|
} |
|
case SEMI: |
|
case OR: |
|
case RPAREN: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.endAlt(); |
|
} |
|
} |
|
|
|
public final void element() throws RecognitionException, TokenStreamException { |
|
|
|
|
|
elementNoOptionSpec(); |
|
{ |
|
switch ( LA(1)) { |
|
case OPEN_ELEMENT_OPTION: |
|
{ |
|
elementOptionSpec(); |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
case ACTION: |
|
case SEMI: |
|
case CHAR_LITERAL: |
|
case OR: |
|
case TOKEN_REF: |
|
case LPAREN: |
|
case RPAREN: |
|
case LITERAL_exception: |
|
case RULE_REF: |
|
case NOT_OP: |
|
case SEMPRED: |
|
case TREE_BEGIN: |
|
case WILDCARD: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
} |
|
|
|
public final void exceptionSpecNoLabel() throws RecognitionException, TokenStreamException { |
|
|
|
|
|
match(LITERAL_exception); |
|
if ( inputState.guessing==0 ) { |
|
behavior.beginExceptionSpec(null); |
|
} |
|
{ |
|
_loop102: |
|
do { |
|
if ((LA(1)==LITERAL_catch)) { |
|
exceptionHandler(); |
|
} |
|
else { |
|
break _loop102; |
|
} |
|
|
|
} while (true); |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.endExceptionSpec(); |
|
} |
|
} |
|
|
|
public final void exceptionSpec() throws RecognitionException, TokenStreamException { |
|
|
|
Token aa = null; |
|
Token labelAction = null; |
|
|
|
match(LITERAL_exception); |
|
{ |
|
switch ( LA(1)) { |
|
case ARG_ACTION: |
|
{ |
|
aa = LT(1); |
|
match(ARG_ACTION); |
|
if ( inputState.guessing==0 ) { |
|
labelAction = aa; |
|
} |
|
break; |
|
} |
|
case EOF: |
|
case ACTION: |
|
case DOC_COMMENT: |
|
case LITERAL_lexclass: |
|
case LITERAL_class: |
|
case TOKEN_REF: |
|
case LITERAL_protected: |
|
case LITERAL_public: |
|
case LITERAL_private: |
|
case LITERAL_exception: |
|
case LITERAL_catch: |
|
case RULE_REF: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.beginExceptionSpec(labelAction); |
|
} |
|
{ |
|
_loop99: |
|
do { |
|
if ((LA(1)==LITERAL_catch)) { |
|
exceptionHandler(); |
|
} |
|
else { |
|
break _loop99; |
|
} |
|
|
|
} while (true); |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.endExceptionSpec(); |
|
} |
|
} |
|
|
|
public final void exceptionHandler() throws RecognitionException, TokenStreamException { |
|
|
|
Token a1 = null; |
|
Token a2 = null; |
|
Token exType; Token exName; |
|
|
|
match(LITERAL_catch); |
|
a1 = LT(1); |
|
match(ARG_ACTION); |
|
a2 = LT(1); |
|
match(ACTION); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refExceptionHandler(a1, a2); |
|
} |
|
} |
|
|
|
public final void elementNoOptionSpec() throws RecognitionException, TokenStreamException { |
|
|
|
Token rr = null; |
|
Token aa = null; |
|
Token tr = null; |
|
Token aa2 = null; |
|
Token r2 = null; |
|
Token aa3 = null; |
|
Token a = null; |
|
Token p = null; |
|
|
|
Token label = null; |
|
Token assignId = null; |
|
Token args = null; |
|
int autoGen = GrammarElement.AUTO_GEN_NONE; |
|
|
|
|
|
switch ( LA(1)) { |
|
case ACTION: |
|
{ |
|
a = LT(1); |
|
match(ACTION); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refAction(a); |
|
} |
|
break; |
|
} |
|
case SEMPRED: |
|
{ |
|
p = LT(1); |
|
match(SEMPRED); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refSemPred(p); |
|
} |
|
break; |
|
} |
|
case TREE_BEGIN: |
|
{ |
|
tree(); |
|
break; |
|
} |
|
default: |
|
if ((LA(1)==TOKEN_REF||LA(1)==RULE_REF) && (LA(2)==ASSIGN)) { |
|
assignId=id(); |
|
match(ASSIGN); |
|
{ |
|
if ((LA(1)==TOKEN_REF||LA(1)==RULE_REF) && (LA(2)==COLON)) { |
|
label=id(); |
|
match(COLON); |
|
if ( inputState.guessing==0 ) { |
|
checkForMissingEndRule(label); |
|
} |
|
} |
|
else if ((LA(1)==TOKEN_REF||LA(1)==RULE_REF) && (_tokenSet_3.member(LA(2)))) { |
|
} |
|
else { |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
|
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case RULE_REF: |
|
{ |
|
rr = LT(1); |
|
match(RULE_REF); |
|
{ |
|
switch ( LA(1)) { |
|
case ARG_ACTION: |
|
{ |
|
aa = LT(1); |
|
match(ARG_ACTION); |
|
if ( inputState.guessing==0 ) { |
|
args=aa; |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
case ACTION: |
|
case SEMI: |
|
case CHAR_LITERAL: |
|
case OR: |
|
case TOKEN_REF: |
|
case OPEN_ELEMENT_OPTION: |
|
case LPAREN: |
|
case RPAREN: |
|
case BANG: |
|
case LITERAL_exception: |
|
case RULE_REF: |
|
case NOT_OP: |
|
case SEMPRED: |
|
case TREE_BEGIN: |
|
case WILDCARD: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case BANG: |
|
{ |
|
match(BANG); |
|
if ( inputState.guessing==0 ) { |
|
autoGen = GrammarElement.AUTO_GEN_BANG; |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
case ACTION: |
|
case SEMI: |
|
case CHAR_LITERAL: |
|
case OR: |
|
case TOKEN_REF: |
|
case OPEN_ELEMENT_OPTION: |
|
case LPAREN: |
|
case RPAREN: |
|
case LITERAL_exception: |
|
case RULE_REF: |
|
case NOT_OP: |
|
case SEMPRED: |
|
case TREE_BEGIN: |
|
case WILDCARD: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.refRule(assignId, rr, label, args, autoGen); |
|
} |
|
break; |
|
} |
|
case TOKEN_REF: |
|
{ |
|
tr = LT(1); |
|
match(TOKEN_REF); |
|
{ |
|
switch ( LA(1)) { |
|
case ARG_ACTION: |
|
{ |
|
aa2 = LT(1); |
|
match(ARG_ACTION); |
|
if ( inputState.guessing==0 ) { |
|
args=aa2; |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
case ACTION: |
|
case SEMI: |
|
case CHAR_LITERAL: |
|
case OR: |
|
case TOKEN_REF: |
|
case OPEN_ELEMENT_OPTION: |
|
case LPAREN: |
|
case RPAREN: |
|
case LITERAL_exception: |
|
case RULE_REF: |
|
case NOT_OP: |
|
case SEMPRED: |
|
case TREE_BEGIN: |
|
case WILDCARD: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.refToken(assignId, tr, label, args, false, autoGen, lastInRule()); |
|
} |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
} |
|
else if ((_tokenSet_4.member(LA(1))) && (_tokenSet_5.member(LA(2)))) { |
|
{ |
|
if ((LA(1)==TOKEN_REF||LA(1)==RULE_REF) && (LA(2)==COLON)) { |
|
label=id(); |
|
match(COLON); |
|
if ( inputState.guessing==0 ) { |
|
checkForMissingEndRule(label); |
|
} |
|
} |
|
else if ((_tokenSet_4.member(LA(1))) && (_tokenSet_6.member(LA(2)))) { |
|
} |
|
else { |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
|
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case RULE_REF: |
|
{ |
|
r2 = LT(1); |
|
match(RULE_REF); |
|
{ |
|
switch ( LA(1)) { |
|
case ARG_ACTION: |
|
{ |
|
aa3 = LT(1); |
|
match(ARG_ACTION); |
|
if ( inputState.guessing==0 ) { |
|
args=aa3; |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
case ACTION: |
|
case SEMI: |
|
case CHAR_LITERAL: |
|
case OR: |
|
case TOKEN_REF: |
|
case OPEN_ELEMENT_OPTION: |
|
case LPAREN: |
|
case RPAREN: |
|
case BANG: |
|
case LITERAL_exception: |
|
case RULE_REF: |
|
case NOT_OP: |
|
case SEMPRED: |
|
case TREE_BEGIN: |
|
case WILDCARD: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case BANG: |
|
{ |
|
match(BANG); |
|
if ( inputState.guessing==0 ) { |
|
autoGen = GrammarElement.AUTO_GEN_BANG; |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
case ACTION: |
|
case SEMI: |
|
case CHAR_LITERAL: |
|
case OR: |
|
case TOKEN_REF: |
|
case OPEN_ELEMENT_OPTION: |
|
case LPAREN: |
|
case RPAREN: |
|
case LITERAL_exception: |
|
case RULE_REF: |
|
case NOT_OP: |
|
case SEMPRED: |
|
case TREE_BEGIN: |
|
case WILDCARD: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.refRule(assignId, r2, label, args, autoGen); |
|
} |
|
break; |
|
} |
|
case NOT_OP: |
|
{ |
|
match(NOT_OP); |
|
{ |
|
switch ( LA(1)) { |
|
case CHAR_LITERAL: |
|
case TOKEN_REF: |
|
{ |
|
notTerminal(label); |
|
break; |
|
} |
|
case LPAREN: |
|
{ |
|
ebnf(label,true); |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
break; |
|
} |
|
case LPAREN: |
|
{ |
|
ebnf(label,false); |
|
break; |
|
} |
|
default: |
|
if ((LA(1)==STRING_LITERAL||LA(1)==CHAR_LITERAL||LA(1)==TOKEN_REF) && (LA(2)==RANGE)) { |
|
range(label); |
|
} |
|
else if ((_tokenSet_7.member(LA(1))) && (_tokenSet_8.member(LA(2)))) { |
|
terminal(label); |
|
} |
|
else { |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
} |
|
else { |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
|
|
public final void elementOptionSpec() throws RecognitionException, TokenStreamException { |
|
|
|
|
|
Token o=null, v=null; |
|
|
|
|
|
match(OPEN_ELEMENT_OPTION); |
|
o=id(); |
|
match(ASSIGN); |
|
v=optionValue(); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refElementOption(o,v); |
|
} |
|
{ |
|
_loop108: |
|
do { |
|
if ((LA(1)==SEMI)) { |
|
match(SEMI); |
|
o=id(); |
|
match(ASSIGN); |
|
v=optionValue(); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refElementOption(o,v); |
|
} |
|
} |
|
else { |
|
break _loop108; |
|
} |
|
|
|
} while (true); |
|
} |
|
match(CLOSE_ELEMENT_OPTION); |
|
} |
|
|
|
public final void range( |
|
Token label |
|
) throws RecognitionException, TokenStreamException { |
|
|
|
Token crLeft = null; |
|
Token crRight = null; |
|
Token t = null; |
|
Token u = null; |
|
Token v = null; |
|
Token w = null; |
|
|
|
Token trLeft=null; |
|
Token trRight=null; |
|
int autoGen=GrammarElement.AUTO_GEN_NONE; |
|
|
|
|
|
switch ( LA(1)) { |
|
case CHAR_LITERAL: |
|
{ |
|
crLeft = LT(1); |
|
match(CHAR_LITERAL); |
|
match(RANGE); |
|
crRight = LT(1); |
|
match(CHAR_LITERAL); |
|
{ |
|
switch ( LA(1)) { |
|
case BANG: |
|
{ |
|
match(BANG); |
|
if ( inputState.guessing==0 ) { |
|
autoGen = GrammarElement.AUTO_GEN_BANG; |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
case ACTION: |
|
case SEMI: |
|
case CHAR_LITERAL: |
|
case OR: |
|
case TOKEN_REF: |
|
case OPEN_ELEMENT_OPTION: |
|
case LPAREN: |
|
case RPAREN: |
|
case LITERAL_exception: |
|
case RULE_REF: |
|
case NOT_OP: |
|
case SEMPRED: |
|
case TREE_BEGIN: |
|
case WILDCARD: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.refCharRange(crLeft, crRight, label, autoGen, lastInRule()); |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
case TOKEN_REF: |
|
{ |
|
{ |
|
switch ( LA(1)) { |
|
case TOKEN_REF: |
|
{ |
|
t = LT(1); |
|
match(TOKEN_REF); |
|
if ( inputState.guessing==0 ) { |
|
trLeft=t; |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
{ |
|
u = LT(1); |
|
match(STRING_LITERAL); |
|
if ( inputState.guessing==0 ) { |
|
trLeft=u; |
|
} |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
match(RANGE); |
|
{ |
|
switch ( LA(1)) { |
|
case TOKEN_REF: |
|
{ |
|
v = LT(1); |
|
match(TOKEN_REF); |
|
if ( inputState.guessing==0 ) { |
|
trRight=v; |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
{ |
|
w = LT(1); |
|
match(STRING_LITERAL); |
|
if ( inputState.guessing==0 ) { |
|
trRight=w; |
|
} |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
autoGen=ast_type_spec(); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refTokenRange(trLeft, trRight, label, autoGen, lastInRule()); |
|
} |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
|
|
public final void terminal( |
|
Token label |
|
) throws RecognitionException, TokenStreamException { |
|
|
|
Token cl = null; |
|
Token tr = null; |
|
Token aa = null; |
|
Token sl = null; |
|
Token wi = null; |
|
|
|
int autoGen=GrammarElement.AUTO_GEN_NONE; |
|
Token args=null; |
|
|
|
|
|
switch ( LA(1)) { |
|
case CHAR_LITERAL: |
|
{ |
|
cl = LT(1); |
|
match(CHAR_LITERAL); |
|
{ |
|
switch ( LA(1)) { |
|
case BANG: |
|
{ |
|
match(BANG); |
|
if ( inputState.guessing==0 ) { |
|
autoGen = GrammarElement.AUTO_GEN_BANG; |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
case ACTION: |
|
case SEMI: |
|
case CHAR_LITERAL: |
|
case OR: |
|
case TOKEN_REF: |
|
case OPEN_ELEMENT_OPTION: |
|
case LPAREN: |
|
case RPAREN: |
|
case LITERAL_exception: |
|
case RULE_REF: |
|
case NOT_OP: |
|
case SEMPRED: |
|
case TREE_BEGIN: |
|
case WILDCARD: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.refCharLiteral(cl, label, false, autoGen, lastInRule()); |
|
} |
|
break; |
|
} |
|
case TOKEN_REF: |
|
{ |
|
tr = LT(1); |
|
match(TOKEN_REF); |
|
autoGen=ast_type_spec(); |
|
{ |
|
switch ( LA(1)) { |
|
case ARG_ACTION: |
|
{ |
|
aa = LT(1); |
|
match(ARG_ACTION); |
|
if ( inputState.guessing==0 ) { |
|
args=aa; |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
case ACTION: |
|
case SEMI: |
|
case CHAR_LITERAL: |
|
case OR: |
|
case TOKEN_REF: |
|
case OPEN_ELEMENT_OPTION: |
|
case LPAREN: |
|
case RPAREN: |
|
case LITERAL_exception: |
|
case RULE_REF: |
|
case NOT_OP: |
|
case SEMPRED: |
|
case TREE_BEGIN: |
|
case WILDCARD: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.refToken(null, tr, label, args, false, autoGen, lastInRule()); |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
{ |
|
sl = LT(1); |
|
match(STRING_LITERAL); |
|
autoGen=ast_type_spec(); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refStringLiteral(sl, label, autoGen, lastInRule()); |
|
} |
|
break; |
|
} |
|
case WILDCARD: |
|
{ |
|
wi = LT(1); |
|
match(WILDCARD); |
|
autoGen=ast_type_spec(); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refWildcard(wi, label, autoGen); |
|
} |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
|
|
public final void notTerminal( |
|
Token label |
|
) throws RecognitionException, TokenStreamException { |
|
|
|
Token cl = null; |
|
Token tr = null; |
|
int autoGen=GrammarElement.AUTO_GEN_NONE; |
|
|
|
switch ( LA(1)) { |
|
case CHAR_LITERAL: |
|
{ |
|
cl = LT(1); |
|
match(CHAR_LITERAL); |
|
{ |
|
switch ( LA(1)) { |
|
case BANG: |
|
{ |
|
match(BANG); |
|
if ( inputState.guessing==0 ) { |
|
autoGen = GrammarElement.AUTO_GEN_BANG; |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
case ACTION: |
|
case SEMI: |
|
case CHAR_LITERAL: |
|
case OR: |
|
case TOKEN_REF: |
|
case OPEN_ELEMENT_OPTION: |
|
case LPAREN: |
|
case RPAREN: |
|
case LITERAL_exception: |
|
case RULE_REF: |
|
case NOT_OP: |
|
case SEMPRED: |
|
case TREE_BEGIN: |
|
case WILDCARD: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.refCharLiteral(cl, label, true, autoGen, lastInRule()); |
|
} |
|
break; |
|
} |
|
case TOKEN_REF: |
|
{ |
|
tr = LT(1); |
|
match(TOKEN_REF); |
|
autoGen=ast_type_spec(); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refToken(null, tr, label, null, true, autoGen, lastInRule()); |
|
} |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
|
|
public final void ebnf( |
|
Token label, boolean not |
|
) throws RecognitionException, TokenStreamException { |
|
|
|
Token lp = null; |
|
Token aa = null; |
|
Token ab = null; |
|
|
|
lp = LT(1); |
|
match(LPAREN); |
|
if ( inputState.guessing==0 ) { |
|
behavior.beginSubRule(label, lp, not); |
|
} |
|
{ |
|
if ((LA(1)==OPTIONS)) { |
|
subruleOptionsSpec(); |
|
{ |
|
switch ( LA(1)) { |
|
case ACTION: |
|
{ |
|
aa = LT(1); |
|
match(ACTION); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refInitAction(aa); |
|
} |
|
break; |
|
} |
|
case COLON: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
match(COLON); |
|
} |
|
else if ((LA(1)==ACTION) && (LA(2)==COLON)) { |
|
ab = LT(1); |
|
match(ACTION); |
|
if ( inputState.guessing==0 ) { |
|
behavior.refInitAction(ab); |
|
} |
|
match(COLON); |
|
} |
|
else if ((_tokenSet_9.member(LA(1))) && (_tokenSet_10.member(LA(2)))) { |
|
} |
|
else { |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
|
|
} |
|
block(); |
|
match(RPAREN); |
|
{ |
|
switch ( LA(1)) { |
|
case STRING_LITERAL: |
|
case ACTION: |
|
case SEMI: |
|
case CHAR_LITERAL: |
|
case OR: |
|
case TOKEN_REF: |
|
case OPEN_ELEMENT_OPTION: |
|
case LPAREN: |
|
case RPAREN: |
|
case BANG: |
|
case LITERAL_exception: |
|
case RULE_REF: |
|
case NOT_OP: |
|
case SEMPRED: |
|
case TREE_BEGIN: |
|
case QUESTION: |
|
case STAR: |
|
case PLUS: |
|
case WILDCARD: |
|
{ |
|
{ |
|
switch ( LA(1)) { |
|
case QUESTION: |
|
{ |
|
match(QUESTION); |
|
if ( inputState.guessing==0 ) { |
|
behavior.optionalSubRule(); |
|
} |
|
break; |
|
} |
|
case STAR: |
|
{ |
|
match(STAR); |
|
if ( inputState.guessing==0 ) { |
|
behavior.zeroOrMoreSubRule(); |
|
} |
|
break; |
|
} |
|
case PLUS: |
|
{ |
|
match(PLUS); |
|
if ( inputState.guessing==0 ) { |
|
behavior.oneOrMoreSubRule(); |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
case ACTION: |
|
case SEMI: |
|
case CHAR_LITERAL: |
|
case OR: |
|
case TOKEN_REF: |
|
case OPEN_ELEMENT_OPTION: |
|
case LPAREN: |
|
case RPAREN: |
|
case BANG: |
|
case LITERAL_exception: |
|
case RULE_REF: |
|
case NOT_OP: |
|
case SEMPRED: |
|
case TREE_BEGIN: |
|
case WILDCARD: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
{ |
|
switch ( LA(1)) { |
|
case BANG: |
|
{ |
|
match(BANG); |
|
if ( inputState.guessing==0 ) { |
|
behavior.noASTSubRule(); |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
case ACTION: |
|
case SEMI: |
|
case CHAR_LITERAL: |
|
case OR: |
|
case TOKEN_REF: |
|
case OPEN_ELEMENT_OPTION: |
|
case LPAREN: |
|
case RPAREN: |
|
case LITERAL_exception: |
|
case RULE_REF: |
|
case NOT_OP: |
|
case SEMPRED: |
|
case TREE_BEGIN: |
|
case WILDCARD: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
break; |
|
} |
|
case IMPLIES: |
|
{ |
|
match(IMPLIES); |
|
if ( inputState.guessing==0 ) { |
|
behavior.synPred(); |
|
} |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.endSubRule(); |
|
} |
|
} |
|
|
|
public final void tree() throws RecognitionException, TokenStreamException { |
|
|
|
Token lp = null; |
|
|
|
lp = LT(1); |
|
match(TREE_BEGIN); |
|
if ( inputState.guessing==0 ) { |
|
behavior.beginTree(lp); |
|
} |
|
rootNode(); |
|
if ( inputState.guessing==0 ) { |
|
behavior.beginChildList(); |
|
} |
|
{ |
|
int _cnt122=0; |
|
_loop122: |
|
do { |
|
if ((_tokenSet_2.member(LA(1)))) { |
|
element(); |
|
} |
|
else { |
|
if ( _cnt122>=1 ) { break _loop122; } else {throw new NoViableAltException(LT(1), getFilename());} |
|
} |
|
|
|
_cnt122++; |
|
} while (true); |
|
} |
|
if ( inputState.guessing==0 ) { |
|
behavior.endChildList(); |
|
} |
|
match(RPAREN); |
|
if ( inputState.guessing==0 ) { |
|
behavior.endTree(); |
|
} |
|
} |
|
|
|
public final void rootNode() throws RecognitionException, TokenStreamException { |
|
|
|
Token label = null; |
|
|
|
{ |
|
if ((LA(1)==TOKEN_REF||LA(1)==RULE_REF) && (LA(2)==COLON)) { |
|
label=id(); |
|
match(COLON); |
|
if ( inputState.guessing==0 ) { |
|
checkForMissingEndRule(label); |
|
} |
|
} |
|
else if ((_tokenSet_7.member(LA(1))) && (_tokenSet_11.member(LA(2)))) { |
|
} |
|
else { |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
|
|
} |
|
terminal(label); |
|
} |
|
|
|
public final int ast_type_spec() throws RecognitionException, TokenStreamException { |
|
int autoGen ; |
|
|
|
autoGen = GrammarElement.AUTO_GEN_NONE; |
|
|
|
{ |
|
switch ( LA(1)) { |
|
case CARET: |
|
{ |
|
match(CARET); |
|
if ( inputState.guessing==0 ) { |
|
autoGen = GrammarElement.AUTO_GEN_CARET; |
|
} |
|
break; |
|
} |
|
case BANG: |
|
{ |
|
match(BANG); |
|
if ( inputState.guessing==0 ) { |
|
autoGen = GrammarElement.AUTO_GEN_BANG; |
|
} |
|
break; |
|
} |
|
case STRING_LITERAL: |
|
case ACTION: |
|
case SEMI: |
|
case CHAR_LITERAL: |
|
case OR: |
|
case TOKEN_REF: |
|
case OPEN_ELEMENT_OPTION: |
|
case LPAREN: |
|
case RPAREN: |
|
case ARG_ACTION: |
|
case LITERAL_exception: |
|
case RULE_REF: |
|
case NOT_OP: |
|
case SEMPRED: |
|
case TREE_BEGIN: |
|
case WILDCARD: |
|
{ |
|
break; |
|
} |
|
default: |
|
{ |
|
throw new NoViableAltException(LT(1), getFilename()); |
|
} |
|
} |
|
} |
|
return autoGen ; |
|
} |
|
|
|
|
|
public static final String[] _tokenNames = { |
|
"<0>", |
|
"EOF", |
|
"<2>", |
|
"NULL_TREE_LOOKAHEAD", |
|
"\"tokens\"", |
|
"\"header\"", |
|
"STRING_LITERAL", |
|
"ACTION", |
|
"DOC_COMMENT", |
|
"\"lexclass\"", |
|
"\"class\"", |
|
"\"extends\"", |
|
"\"Lexer\"", |
|
"\"TreeParser\"", |
|
"OPTIONS", |
|
"ASSIGN", |
|
"SEMI", |
|
"RCURLY", |
|
"\"charVocabulary\"", |
|
"CHAR_LITERAL", |
|
"INT", |
|
"OR", |
|
"RANGE", |
|
"TOKENS", |
|
"TOKEN_REF", |
|
"OPEN_ELEMENT_OPTION", |
|
"CLOSE_ELEMENT_OPTION", |
|
"LPAREN", |
|
"RPAREN", |
|
"\"Parser\"", |
|
"\"protected\"", |
|
"\"public\"", |
|
"\"private\"", |
|
"BANG", |
|
"ARG_ACTION", |
|
"\"returns\"", |
|
"COLON", |
|
"\"throws\"", |
|
"COMMA", |
|
"\"exception\"", |
|
"\"catch\"", |
|
"RULE_REF", |
|
"NOT_OP", |
|
"SEMPRED", |
|
"TREE_BEGIN", |
|
"QUESTION", |
|
"STAR", |
|
"PLUS", |
|
"IMPLIES", |
|
"CARET", |
|
"WILDCARD", |
|
"\"options\"", |
|
"WS", |
|
"COMMENT", |
|
"SL_COMMENT", |
|
"ML_COMMENT", |
|
"ESC", |
|
"DIGIT", |
|
"XDIGIT", |
|
"NESTED_ARG_ACTION", |
|
"NESTED_ACTION", |
|
"WS_LOOP", |
|
"INTERNAL_RULE_REF", |
|
"WS_OPT" |
|
}; |
|
|
|
private static final long[] mk_tokenSet_0() { |
|
long[] data = { 2206556225792L, 0L}; |
|
return data; |
|
} |
|
public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0()); |
|
private static final long[] mk_tokenSet_1() { |
|
long[] data = { 2472844214400L, 0L}; |
|
return data; |
|
} |
|
public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1()); |
|
private static final long[] mk_tokenSet_2() { |
|
long[] data = { 1158885407195328L, 0L}; |
|
return data; |
|
} |
|
public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2()); |
|
private static final long[] mk_tokenSet_3() { |
|
long[] data = { 1159461236965568L, 0L}; |
|
return data; |
|
} |
|
public static final BitSet _tokenSet_3 = new BitSet(mk_tokenSet_3()); |
|
private static final long[] mk_tokenSet_4() { |
|
long[] data = { 1132497128128576L, 0L}; |
|
return data; |
|
} |
|
public static final BitSet _tokenSet_4 = new BitSet(mk_tokenSet_4()); |
|
private static final long[] mk_tokenSet_5() { |
|
long[] data = { 1722479914074304L, 0L}; |
|
return data; |
|
} |
|
public static final BitSet _tokenSet_5 = new BitSet(mk_tokenSet_5()); |
|
private static final long[] mk_tokenSet_6() { |
|
long[] data = { 1722411194597568L, 0L}; |
|
return data; |
|
} |
|
public static final BitSet _tokenSet_6 = new BitSet(mk_tokenSet_6()); |
|
private static final long[] mk_tokenSet_7() { |
|
long[] data = { 1125899924144192L, 0L}; |
|
return data; |
|
} |
|
public static final BitSet _tokenSet_7 = new BitSet(mk_tokenSet_7()); |
|
private static final long[] mk_tokenSet_8() { |
|
long[] data = { 1722411190386880L, 0L}; |
|
return data; |
|
} |
|
public static final BitSet _tokenSet_8 = new BitSet(mk_tokenSet_8()); |
|
private static final long[] mk_tokenSet_9() { |
|
long[] data = { 1159444023476416L, 0L}; |
|
return data; |
|
} |
|
public static final BitSet _tokenSet_9 = new BitSet(mk_tokenSet_9()); |
|
private static final long[] mk_tokenSet_10() { |
|
long[] data = { 2251345007067328L, 0L}; |
|
return data; |
|
} |
|
public static final BitSet _tokenSet_10 = new BitSet(mk_tokenSet_10()); |
|
private static final long[] mk_tokenSet_11() { |
|
long[] data = { 1721861130420416L, 0L}; |
|
return data; |
|
} |
|
public static final BitSet _tokenSet_11 = new BitSet(mk_tokenSet_11()); |
|
|
|
}
|
|
|