2575 lines
69 KiB
Objective-C
2575 lines
69 KiB
Objective-C
/** \file
|
|
* This OBJC source file was generated by $ANTLR version 3.4
|
|
*
|
|
* - From the grammar source file : /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g
|
|
* - On : 2012-02-16 17:34:08
|
|
* - for the lexer : FuzzyLexer
|
|
*
|
|
* Editing it, at least manually, is not wise.
|
|
*
|
|
* ObjC language generator and runtime by Alan Condit, acondit|hereisanat|ipns|dotgoeshere|com.
|
|
*
|
|
*
|
|
*/
|
|
// $ANTLR 3.4 /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g 2012-02-16 17:34:08
|
|
|
|
|
|
/* -----------------------------------------
|
|
* Include the ANTLR3 generated header file.
|
|
*/
|
|
#import "Fuzzy.h"
|
|
/* ----------------------------------------- */
|
|
|
|
|
|
/* ============================================================================= */
|
|
/* =============================================================================
|
|
* Start of recognizer
|
|
*/
|
|
|
|
/** As per Terence: No returns for lexer rules! */
|
|
@implementation Fuzzy // line 330
|
|
|
|
+ (void) initialize
|
|
{
|
|
[BaseRecognizer setGrammarFileName:@"/Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g"];
|
|
}
|
|
|
|
+ (NSString *) tokenNameForType:(NSInteger)aTokenType
|
|
{
|
|
return [[self getTokenNames] objectAtIndex:aTokenType];
|
|
}
|
|
|
|
+ (Fuzzy *)newFuzzyWithCharStream:(id<CharStream>)anInput
|
|
{
|
|
return [[Fuzzy alloc] initWithCharStream:anInput];
|
|
}
|
|
|
|
- (id) initWithCharStream:(id<CharStream>)anInput
|
|
{
|
|
self = [super initWithCharStream:anInput State:[RecognizerSharedState newRecognizerSharedStateWithRuleLen:30+1]];
|
|
if ( self != nil ) {
|
|
SEL synpred9_FuzzySelector = @selector(synpred9_Fuzzy_fragment);
|
|
|
|
SEL synpred2_FuzzySelector = @selector(synpred2_Fuzzy_fragment);
|
|
|
|
SEL synpred7_FuzzySelector = @selector(synpred7_Fuzzy_fragment);
|
|
|
|
SEL synpred4_FuzzySelector = @selector(synpred4_Fuzzy_fragment);
|
|
|
|
SEL synpred8_FuzzySelector = @selector(synpred8_Fuzzy_fragment);
|
|
|
|
SEL synpred6_FuzzySelector = @selector(synpred6_Fuzzy_fragment);
|
|
|
|
SEL synpred5_FuzzySelector = @selector(synpred5_Fuzzy_fragment);
|
|
|
|
SEL synpred3_FuzzySelector = @selector(synpred3_Fuzzy_fragment);
|
|
|
|
SEL synpred1_FuzzySelector = @selector(synpred1_Fuzzy_fragment);
|
|
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void) dealloc
|
|
{
|
|
[super dealloc];
|
|
}
|
|
|
|
/* ObjC Start of actions.lexer.methods */
|
|
/* ObjC end of actions.lexer.methods */
|
|
/* ObjC start methods() */
|
|
/* ObjC end methods() */
|
|
|
|
- (id<Token>) nextToken
|
|
{
|
|
while (YES) {
|
|
if ( [input LA:1] == CharStreamEOF ) {
|
|
return [CommonToken eofToken];
|
|
}
|
|
state.token = nil;
|
|
state.channel = TokenChannelDefault;
|
|
state.tokenStartCharIndex = input.index;
|
|
state.tokenStartCharPositionInLine = [input getCharPositionInLine];
|
|
state.tokenStartLine = [input getLine];
|
|
state.text = nil;
|
|
@try {
|
|
NSInteger m = [input mark];
|
|
state.backtracking = 1; /* means we won't throw slow exception */
|
|
state.failed = NO;
|
|
[self mTokens];
|
|
state.backtracking = 0;
|
|
/* mTokens backtracks with synpred at backtracking==2
|
|
and we set the synpredgate to allow actions at level 1. */
|
|
if ( state.failed ) {
|
|
[input rewind:m];
|
|
[input consume]; /* advance one char and try again */
|
|
} else {
|
|
[self emit];
|
|
return state.token;
|
|
}
|
|
}
|
|
@catch (RecognitionException *re) {
|
|
// shouldn't happen in backtracking mode, but...
|
|
[self reportError:re];
|
|
[self recover:re];
|
|
}
|
|
}
|
|
}
|
|
|
|
- (void)memoize:(id<IntStream>)anInput
|
|
RuleIndex:(NSInteger)ruleIndex
|
|
StartIndex:(NSInteger)ruleStartIndex
|
|
{
|
|
if ( state.backtracking > 1 ) [super memoize:anInput RuleIndex:ruleIndex StartIndex:ruleStartIndex];
|
|
}
|
|
|
|
- (BOOL)alreadyParsedRule:(id<IntStream>)anInput RuleIndex:(NSInteger)ruleIndex
|
|
{
|
|
if ( state.backtracking > 1 ) return [super alreadyParsedRule:anInput RuleIndex:ruleIndex];
|
|
return NO;
|
|
}
|
|
/* Start of Rules */
|
|
// $ANTLR start "IMPORT"
|
|
- (void) mIMPORT
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
NSInteger _type = IMPORT;
|
|
NSInteger _channel = TokenChannelDefault;
|
|
CommonToken *name=nil;
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:5:2: ( 'import' WS name= QIDStar ( WS )? ';' ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:5:4: 'import' WS name= QIDStar ( WS )? ';' // alt
|
|
{
|
|
|
|
|
|
[self matchString:@"import"]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
NSInteger nameStart31 = input.index;
|
|
[self mQIDStar]; if ( state.failed ) return ;
|
|
|
|
name = [[CommonToken newToken:input Type:TokenTypeInvalid Channel:TokenChannelDefault Start:nameStart31 Stop:input.index-1] retain];
|
|
name.line = self.line;
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:5:29: ( WS )? // block
|
|
NSInteger alt1=2;
|
|
NSInteger LA1_0 = [input LA:1];
|
|
|
|
if ( ((LA1_0 >= '\t' && LA1_0 <= '\n')||LA1_0==' ') ) {
|
|
alt1=1;
|
|
}
|
|
switch (alt1) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:5:29: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
[self matchChar:';']; if ( state.failed ) return ;
|
|
|
|
|
|
}
|
|
|
|
/* token+rule list labels */
|
|
|
|
state.type = _type;
|
|
state.channel = _channel;
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "IMPORT" */
|
|
// $ANTLR start "RETURN"
|
|
- (void) mRETURN
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
NSInteger _type = RETURN;
|
|
NSInteger _channel = TokenChannelDefault;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:10:2: ( 'return' ( options {greedy=false; } : . )* ';' ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:10:4: 'return' ( options {greedy=false; } : . )* ';' // alt
|
|
{
|
|
|
|
|
|
[self matchString:@"return"]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
do {
|
|
NSInteger alt2=2;
|
|
NSInteger LA2_0 = [input LA:1];
|
|
if ( (LA2_0==';') ) {
|
|
alt2=2;
|
|
}
|
|
else if ( ((LA2_0 >= 0x0000 && LA2_0 <= ':')||(LA2_0 >= '<' && LA2_0 <= 0xFFFF)) ) {
|
|
alt2=1;
|
|
}
|
|
|
|
|
|
switch (alt2) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:10:38: . // alt
|
|
{
|
|
|
|
[self matchAny]; if ( state.failed ) return ;
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
default :
|
|
goto loop2;
|
|
}
|
|
} while (YES);
|
|
loop2: ;
|
|
|
|
|
|
|
|
[self matchChar:';']; if ( state.failed ) return ;
|
|
|
|
|
|
}
|
|
|
|
/* token+rule list labels */
|
|
|
|
state.type = _type;
|
|
state.channel = _channel;
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "RETURN" */
|
|
// $ANTLR start "CLASS"
|
|
- (void) mCLASS
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
NSInteger _type = CLASS;
|
|
NSInteger _channel = TokenChannelDefault;
|
|
CommonToken *name=nil;
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:14:2: ( 'class' WS name= ID ( WS )? ( 'extends' WS QID ( WS )? )? ( 'implements' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? '{' ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:14:4: 'class' WS name= ID ( WS )? ( 'extends' WS QID ( WS )? )? ( 'implements' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? '{' // alt
|
|
{
|
|
|
|
|
|
[self matchString:@"class"]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
NSInteger nameStart81 = input.index;
|
|
[self mID]; if ( state.failed ) return ;
|
|
|
|
name = [[CommonToken newToken:input Type:TokenTypeInvalid Channel:TokenChannelDefault Start:nameStart81 Stop:input.index-1] retain];
|
|
name.line = self.line;
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:14:23: ( WS )? // block
|
|
NSInteger alt3=2;
|
|
NSInteger LA3_0 = [input LA:1];
|
|
|
|
if ( ((LA3_0 >= '\t' && LA3_0 <= '\n')||LA3_0==' ') ) {
|
|
alt3=1;
|
|
}
|
|
switch (alt3) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:14:23: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:14:27: ( 'extends' WS QID ( WS )? )? // block
|
|
NSInteger alt5=2;
|
|
NSInteger LA5_0 = [input LA:1];
|
|
|
|
if ( (LA5_0=='e') ) {
|
|
alt5=1;
|
|
}
|
|
switch (alt5) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:14:28: 'extends' WS QID ( WS )? // alt
|
|
{
|
|
|
|
|
|
[self matchString:@"extends"]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
[self mQID]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:14:45: ( WS )? // block
|
|
NSInteger alt4=2;
|
|
NSInteger LA4_0 = [input LA:1];
|
|
|
|
if ( ((LA4_0 >= '\t' && LA4_0 <= '\n')||LA4_0==' ') ) {
|
|
alt4=1;
|
|
}
|
|
switch (alt4) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:14:45: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:15:3: ( 'implements' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? // block
|
|
NSInteger alt10=2;
|
|
NSInteger LA10_0 = [input LA:1];
|
|
|
|
if ( (LA10_0=='i') ) {
|
|
alt10=1;
|
|
}
|
|
switch (alt10) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:15:4: 'implements' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* // alt
|
|
{
|
|
|
|
|
|
[self matchString:@"implements"]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
[self mQID]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:15:24: ( WS )? // block
|
|
NSInteger alt6=2;
|
|
NSInteger LA6_0 = [input LA:1];
|
|
|
|
if ( ((LA6_0 >= '\t' && LA6_0 <= '\n')||LA6_0==' ') ) {
|
|
alt6=1;
|
|
}
|
|
switch (alt6) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:15:24: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
do {
|
|
NSInteger alt9=2;
|
|
NSInteger LA9_0 = [input LA:1];
|
|
if ( (LA9_0==',') ) {
|
|
alt9=1;
|
|
}
|
|
|
|
|
|
switch (alt9) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:15:29: ',' ( WS )? QID ( WS )? // alt
|
|
{
|
|
|
|
|
|
[self matchChar:',']; if ( state.failed ) return ;
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:15:33: ( WS )? // block
|
|
NSInteger alt7=2;
|
|
NSInteger LA7_0 = [input LA:1];
|
|
|
|
if ( ((LA7_0 >= '\t' && LA7_0 <= '\n')||LA7_0==' ') ) {
|
|
alt7=1;
|
|
}
|
|
switch (alt7) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:15:33: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
[self mQID]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:15:41: ( WS )? // block
|
|
NSInteger alt8=2;
|
|
NSInteger LA8_0 = [input LA:1];
|
|
|
|
if ( ((LA8_0 >= '\t' && LA8_0 <= '\n')||LA8_0==' ') ) {
|
|
alt8=1;
|
|
}
|
|
switch (alt8) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:15:41: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
default :
|
|
goto loop9;
|
|
}
|
|
} while (YES);
|
|
loop9: ;
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
[self matchChar:'{']; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
if ( state.backtracking == 1 ) {
|
|
NSLog(@"found class %@", (name!=nil?name.text:nil));
|
|
}
|
|
|
|
|
|
}
|
|
|
|
/* token+rule list labels */
|
|
|
|
state.type = _type;
|
|
state.channel = _channel;
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "CLASS" */
|
|
// $ANTLR start "METHOD"
|
|
- (void) mMETHOD
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
NSInteger _type = METHOD;
|
|
NSInteger _channel = TokenChannelDefault;
|
|
CommonToken *name=nil;
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:20:5: ( TYPE WS name= ID ( WS )? '(' ( ARG ( WS )? ( ',' ( WS )? ARG ( WS )? )* )? ')' ( WS )? ( 'throws' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? '{' ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:20:9: TYPE WS name= ID ( WS )? '(' ( ARG ( WS )? ( ',' ( WS )? ARG ( WS )? )* )? ')' ( WS )? ( 'throws' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? '{' // alt
|
|
{
|
|
|
|
|
|
[self mTYPE]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
NSInteger nameStart158 = input.index;
|
|
[self mID]; if ( state.failed ) return ;
|
|
|
|
name = [[CommonToken newToken:input Type:TokenTypeInvalid Channel:TokenChannelDefault Start:nameStart158 Stop:input.index-1] retain];
|
|
name.line = self.line;
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:20:25: ( WS )? // block
|
|
NSInteger alt11=2;
|
|
NSInteger LA11_0 = [input LA:1];
|
|
|
|
if ( ((LA11_0 >= '\t' && LA11_0 <= '\n')||LA11_0==' ') ) {
|
|
alt11=1;
|
|
}
|
|
switch (alt11) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:20:25: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
[self matchChar:'(']; if ( state.failed ) return ;
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:20:33: ( ARG ( WS )? ( ',' ( WS )? ARG ( WS )? )* )? // block
|
|
NSInteger alt16=2;
|
|
NSInteger LA16_0 = [input LA:1];
|
|
|
|
if ( ((LA16_0 >= 'A' && LA16_0 <= 'Z')||LA16_0=='_'||(LA16_0 >= 'a' && LA16_0 <= 'z')) ) {
|
|
alt16=1;
|
|
}
|
|
switch (alt16) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:20:35: ARG ( WS )? ( ',' ( WS )? ARG ( WS )? )* // alt
|
|
{
|
|
|
|
|
|
[self mARG]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:20:39: ( WS )? // block
|
|
NSInteger alt12=2;
|
|
NSInteger LA12_0 = [input LA:1];
|
|
|
|
if ( ((LA12_0 >= '\t' && LA12_0 <= '\n')||LA12_0==' ') ) {
|
|
alt12=1;
|
|
}
|
|
switch (alt12) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:20:39: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
do {
|
|
NSInteger alt15=2;
|
|
NSInteger LA15_0 = [input LA:1];
|
|
if ( (LA15_0==',') ) {
|
|
alt15=1;
|
|
}
|
|
|
|
|
|
switch (alt15) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:20:44: ',' ( WS )? ARG ( WS )? // alt
|
|
{
|
|
|
|
|
|
[self matchChar:',']; if ( state.failed ) return ;
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:20:48: ( WS )? // block
|
|
NSInteger alt13=2;
|
|
NSInteger LA13_0 = [input LA:1];
|
|
|
|
if ( ((LA13_0 >= '\t' && LA13_0 <= '\n')||LA13_0==' ') ) {
|
|
alt13=1;
|
|
}
|
|
switch (alt13) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:20:48: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
[self mARG]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:20:56: ( WS )? // block
|
|
NSInteger alt14=2;
|
|
NSInteger LA14_0 = [input LA:1];
|
|
|
|
if ( ((LA14_0 >= '\t' && LA14_0 <= '\n')||LA14_0==' ') ) {
|
|
alt14=1;
|
|
}
|
|
switch (alt14) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:20:56: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
default :
|
|
goto loop15;
|
|
}
|
|
} while (YES);
|
|
loop15: ;
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
[self matchChar:')']; if ( state.failed ) return ;
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:20:69: ( WS )? // block
|
|
NSInteger alt17=2;
|
|
NSInteger LA17_0 = [input LA:1];
|
|
|
|
if ( ((LA17_0 >= '\t' && LA17_0 <= '\n')||LA17_0==' ') ) {
|
|
alt17=1;
|
|
}
|
|
switch (alt17) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:20:69: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:21:8: ( 'throws' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? // block
|
|
NSInteger alt22=2;
|
|
NSInteger LA22_0 = [input LA:1];
|
|
|
|
if ( (LA22_0=='t') ) {
|
|
alt22=1;
|
|
}
|
|
switch (alt22) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:21:9: 'throws' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* // alt
|
|
{
|
|
|
|
|
|
[self matchString:@"throws"]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
[self mQID]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:21:25: ( WS )? // block
|
|
NSInteger alt18=2;
|
|
NSInteger LA18_0 = [input LA:1];
|
|
|
|
if ( ((LA18_0 >= '\t' && LA18_0 <= '\n')||LA18_0==' ') ) {
|
|
alt18=1;
|
|
}
|
|
switch (alt18) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:21:25: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
do {
|
|
NSInteger alt21=2;
|
|
NSInteger LA21_0 = [input LA:1];
|
|
if ( (LA21_0==',') ) {
|
|
alt21=1;
|
|
}
|
|
|
|
|
|
switch (alt21) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:21:30: ',' ( WS )? QID ( WS )? // alt
|
|
{
|
|
|
|
|
|
[self matchChar:',']; if ( state.failed ) return ;
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:21:34: ( WS )? // block
|
|
NSInteger alt19=2;
|
|
NSInteger LA19_0 = [input LA:1];
|
|
|
|
if ( ((LA19_0 >= '\t' && LA19_0 <= '\n')||LA19_0==' ') ) {
|
|
alt19=1;
|
|
}
|
|
switch (alt19) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:21:34: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
[self mQID]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:21:42: ( WS )? // block
|
|
NSInteger alt20=2;
|
|
NSInteger LA20_0 = [input LA:1];
|
|
|
|
if ( ((LA20_0 >= '\t' && LA20_0 <= '\n')||LA20_0==' ') ) {
|
|
alt20=1;
|
|
}
|
|
switch (alt20) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:21:42: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
default :
|
|
goto loop21;
|
|
}
|
|
} while (YES);
|
|
loop21: ;
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
[self matchChar:'{']; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
if ( state.backtracking == 1 ) {
|
|
NSLog(@"found method %@", (name!=nil?name.text:nil));
|
|
}
|
|
|
|
|
|
}
|
|
|
|
/* token+rule list labels */
|
|
|
|
state.type = _type;
|
|
state.channel = _channel;
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "METHOD" */
|
|
// $ANTLR start "FIELD"
|
|
- (void) mFIELD
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
NSInteger _type = FIELD;
|
|
NSInteger _channel = TokenChannelDefault;
|
|
CommonToken *name=nil;
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:26:5: ( TYPE WS name= ID ( '[]' )? ( WS )? ( ';' | '=' ) ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:26:9: TYPE WS name= ID ( '[]' )? ( WS )? ( ';' | '=' ) // alt
|
|
{
|
|
|
|
|
|
[self mTYPE]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
NSInteger nameStart261 = input.index;
|
|
[self mID]; if ( state.failed ) return ;
|
|
|
|
name = [[CommonToken newToken:input Type:TokenTypeInvalid Channel:TokenChannelDefault Start:nameStart261 Stop:input.index-1] retain];
|
|
name.line = self.line;
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:26:25: ( '[]' )? // block
|
|
NSInteger alt23=2;
|
|
NSInteger LA23_0 = [input LA:1];
|
|
|
|
if ( (LA23_0=='[') ) {
|
|
alt23=1;
|
|
}
|
|
switch (alt23) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:26:25: '[]' // alt
|
|
{
|
|
|
|
|
|
[self matchString:@"[]"]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:26:31: ( WS )? // block
|
|
NSInteger alt24=2;
|
|
NSInteger LA24_0 = [input LA:1];
|
|
|
|
if ( ((LA24_0 >= '\t' && LA24_0 <= '\n')||LA24_0==' ') ) {
|
|
alt24=1;
|
|
}
|
|
switch (alt24) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:26:31: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
if ([input LA:1] == ';'||[input LA:1] == '=') {
|
|
[input consume];
|
|
state.failed = NO;
|
|
|
|
} else {
|
|
if ( state.backtracking > 0 ) { state.failed = YES; return ; }
|
|
|
|
MismatchedSetException *mse = [MismatchedSetException newException:nil stream:input];
|
|
[self recover:mse];
|
|
@throw mse;
|
|
}
|
|
|
|
|
|
|
|
if ( state.backtracking == 1 ) {
|
|
NSLog(@"found var %@", (name!=nil?name.text:nil));
|
|
}
|
|
|
|
|
|
}
|
|
|
|
/* token+rule list labels */
|
|
|
|
state.type = _type;
|
|
state.channel = _channel;
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "FIELD" */
|
|
// $ANTLR start "STAT"
|
|
- (void) mSTAT
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
NSInteger _type = STAT;
|
|
NSInteger _channel = TokenChannelDefault;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:30:5: ( ( 'if' | 'while' | 'switch' | 'for' ) ( WS )? '(' ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:30:7: ( 'if' | 'while' | 'switch' | 'for' ) ( WS )? '(' // alt
|
|
{
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:30:7: ( 'if' | 'while' | 'switch' | 'for' ) // block
|
|
NSInteger alt25=4;
|
|
unichar charLA25 = [input LA:1];
|
|
switch (charLA25) {
|
|
case 'i': ;
|
|
{
|
|
alt25=1;
|
|
}
|
|
break;
|
|
case 'w': ;
|
|
{
|
|
alt25=2;
|
|
}
|
|
break;
|
|
case 's': ;
|
|
{
|
|
alt25=3;
|
|
}
|
|
break;
|
|
case 'f': ;
|
|
{
|
|
alt25=4;
|
|
}
|
|
break;
|
|
|
|
default: ;
|
|
if ( state.backtracking > 0 ) { state.failed = YES; return ; }
|
|
|
|
NoViableAltException *nvae = [NoViableAltException newException:25 state:0 stream:input];
|
|
nvae.c = charLA25;
|
|
@throw nvae;
|
|
|
|
}
|
|
|
|
switch (alt25) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:30:8: 'if' // alt
|
|
{
|
|
|
|
|
|
[self matchString:@"if"]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
case 2 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:30:13: 'while' // alt
|
|
{
|
|
|
|
|
|
[self matchString:@"while"]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
case 3 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:30:21: 'switch' // alt
|
|
{
|
|
|
|
|
|
[self matchString:@"switch"]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
case 4 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:30:30: 'for' // alt
|
|
{
|
|
|
|
|
|
[self matchString:@"for"]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:30:37: ( WS )? // block
|
|
NSInteger alt26=2;
|
|
NSInteger LA26_0 = [input LA:1];
|
|
|
|
if ( ((LA26_0 >= '\t' && LA26_0 <= '\n')||LA26_0==' ') ) {
|
|
alt26=1;
|
|
}
|
|
switch (alt26) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:30:37: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
[self matchChar:'(']; if ( state.failed ) return ;
|
|
|
|
|
|
}
|
|
|
|
/* token+rule list labels */
|
|
|
|
state.type = _type;
|
|
state.channel = _channel;
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "STAT" */
|
|
// $ANTLR start "CALL"
|
|
- (void) mCALL
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
NSInteger _type = CALL;
|
|
NSInteger _channel = TokenChannelDefault;
|
|
CommonToken *name=nil;
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:33:5: (name= QID ( WS )? '(' ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:33:9: name= QID ( WS )? '(' // alt
|
|
{
|
|
|
|
|
|
NSInteger nameStart326 = input.index;
|
|
[self mQID]; if ( state.failed ) return ;
|
|
|
|
name = [[CommonToken newToken:input Type:TokenTypeInvalid Channel:TokenChannelDefault Start:nameStart326 Stop:input.index-1] retain];
|
|
name.line = self.line;
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:33:18: ( WS )? // block
|
|
NSInteger alt27=2;
|
|
NSInteger LA27_0 = [input LA:1];
|
|
|
|
if ( ((LA27_0 >= '\t' && LA27_0 <= '\n')||LA27_0==' ') ) {
|
|
alt27=1;
|
|
}
|
|
switch (alt27) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:33:18: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
[self matchChar:'(']; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
if ( state.backtracking == 1 ) {
|
|
/*ignore if this/super */ NSLog(@"found call %@",(name!=nil?name.text:nil));
|
|
}
|
|
|
|
|
|
}
|
|
|
|
/* token+rule list labels */
|
|
|
|
state.type = _type;
|
|
state.channel = _channel;
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "CALL" */
|
|
// $ANTLR start "COMMENT"
|
|
- (void) mCOMMENT
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
NSInteger _type = COMMENT;
|
|
NSInteger _channel = TokenChannelDefault;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:38:5: ( '/*' ( options {greedy=false; } : . )* '*/' ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:38:9: '/*' ( options {greedy=false; } : . )* '*/' // alt
|
|
{
|
|
|
|
|
|
[self matchString:@"/*"]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
do {
|
|
NSInteger alt28=2;
|
|
NSInteger LA28_0 = [input LA:1];
|
|
if ( (LA28_0=='*') ) {
|
|
NSInteger LA28_1 = [input LA:2];
|
|
if ( (LA28_1=='/') ) {
|
|
alt28=2;
|
|
}
|
|
else if ( ((LA28_1 >= 0x0000 && LA28_1 <= '.')||(LA28_1 >= '0' && LA28_1 <= 0xFFFF)) ) {
|
|
alt28=1;
|
|
}
|
|
|
|
|
|
}
|
|
else if ( ((LA28_0 >= 0x0000 && LA28_0 <= ')')||(LA28_0 >= '+' && LA28_0 <= 0xFFFF)) ) {
|
|
alt28=1;
|
|
}
|
|
|
|
|
|
switch (alt28) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:38:41: . // alt
|
|
{
|
|
|
|
[self matchAny]; if ( state.failed ) return ;
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
default :
|
|
goto loop28;
|
|
}
|
|
} while (YES);
|
|
loop28: ;
|
|
|
|
|
|
|
|
[self matchString:@"*/"]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
if ( state.backtracking == 1 ) {
|
|
NSLog(@"found comment %@", [self text]);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
/* token+rule list labels */
|
|
|
|
state.type = _type;
|
|
state.channel = _channel;
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "COMMENT" */
|
|
// $ANTLR start "SL_COMMENT"
|
|
- (void) mSL_COMMENT
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
NSInteger _type = SL_COMMENT;
|
|
NSInteger _channel = TokenChannelDefault;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:43:5: ( '//' ( options {greedy=false; } : . )* '\\n' ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:43:9: '//' ( options {greedy=false; } : . )* '\\n' // alt
|
|
{
|
|
|
|
|
|
[self matchString:@"//"]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
do {
|
|
NSInteger alt29=2;
|
|
NSInteger LA29_0 = [input LA:1];
|
|
if ( (LA29_0=='\n') ) {
|
|
alt29=2;
|
|
}
|
|
else if ( ((LA29_0 >= 0x0000 && LA29_0 <= '\t')||(LA29_0 >= 0x000B && LA29_0 <= 0xFFFF)) ) {
|
|
alt29=1;
|
|
}
|
|
|
|
|
|
switch (alt29) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:43:41: . // alt
|
|
{
|
|
|
|
[self matchAny]; if ( state.failed ) return ;
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
default :
|
|
goto loop29;
|
|
}
|
|
} while (YES);
|
|
loop29: ;
|
|
|
|
|
|
|
|
[self matchChar:'\n']; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
if ( state.backtracking == 1 ) {
|
|
NSLog(@"found // comment %@", [self text]);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
/* token+rule list labels */
|
|
|
|
state.type = _type;
|
|
state.channel = _channel;
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "SL_COMMENT" */
|
|
// $ANTLR start "STRING"
|
|
- (void) mSTRING
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
NSInteger _type = STRING;
|
|
NSInteger _channel = TokenChannelDefault;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:48:2: ( '\"' ( options {greedy=false; } : ESC | . )* '\"' ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:48:4: '\"' ( options {greedy=false; } : ESC | . )* '\"' // alt
|
|
{
|
|
|
|
|
|
[self matchChar:'"']; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
do {
|
|
NSInteger alt30=3;
|
|
NSInteger LA30_0 = [input LA:1];
|
|
if ( (LA30_0=='"') ) {
|
|
alt30=3;
|
|
}
|
|
else if ( (LA30_0=='\\') ) {
|
|
NSInteger LA30_2 = [input LA:2];
|
|
if ( (LA30_2=='"') ) {
|
|
alt30=1;
|
|
}
|
|
else if ( (LA30_2=='\\') ) {
|
|
alt30=1;
|
|
}
|
|
else if ( (LA30_2=='\'') ) {
|
|
alt30=1;
|
|
}
|
|
else if ( ((LA30_2 >= 0x0000 && LA30_2 <= '!')||(LA30_2 >= '#' && LA30_2 <= '&')||(LA30_2 >= '(' && LA30_2 <= '[')||(LA30_2 >= ']' && LA30_2 <= 0xFFFF)) ) {
|
|
alt30=2;
|
|
}
|
|
|
|
|
|
}
|
|
else if ( ((LA30_0 >= 0x0000 && LA30_0 <= '!')||(LA30_0 >= '#' && LA30_0 <= '[')||(LA30_0 >= ']' && LA30_0 <= 0xFFFF)) ) {
|
|
alt30=2;
|
|
}
|
|
|
|
|
|
switch (alt30) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:48:34: ESC // alt
|
|
{
|
|
|
|
|
|
[self mESC]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
case 2 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:48:40: . // alt
|
|
{
|
|
|
|
[self matchAny]; if ( state.failed ) return ;
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
default :
|
|
goto loop30;
|
|
}
|
|
} while (YES);
|
|
loop30: ;
|
|
|
|
|
|
|
|
[self matchChar:'"']; if ( state.failed ) return ;
|
|
|
|
|
|
}
|
|
|
|
/* token+rule list labels */
|
|
|
|
state.type = _type;
|
|
state.channel = _channel;
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "STRING" */
|
|
// $ANTLR start "CHAR"
|
|
- (void) mCHAR
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
NSInteger _type = CHAR;
|
|
NSInteger _channel = TokenChannelDefault;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:52:2: ( '\\'' ( options {greedy=false; } : ESC | . )* '\\'' ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:52:4: '\\'' ( options {greedy=false; } : ESC | . )* '\\'' // alt
|
|
{
|
|
|
|
|
|
[self matchChar:'\'']; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
do {
|
|
NSInteger alt31=3;
|
|
NSInteger LA31_0 = [input LA:1];
|
|
if ( (LA31_0=='\'') ) {
|
|
alt31=3;
|
|
}
|
|
else if ( (LA31_0=='\\') ) {
|
|
NSInteger LA31_2 = [input LA:2];
|
|
if ( (LA31_2=='\'') ) {
|
|
alt31=1;
|
|
}
|
|
else if ( (LA31_2=='\\') ) {
|
|
alt31=1;
|
|
}
|
|
else if ( (LA31_2=='"') ) {
|
|
alt31=1;
|
|
}
|
|
else if ( ((LA31_2 >= 0x0000 && LA31_2 <= '!')||(LA31_2 >= '#' && LA31_2 <= '&')||(LA31_2 >= '(' && LA31_2 <= '[')||(LA31_2 >= ']' && LA31_2 <= 0xFFFF)) ) {
|
|
alt31=2;
|
|
}
|
|
|
|
|
|
}
|
|
else if ( ((LA31_0 >= 0x0000 && LA31_0 <= '&')||(LA31_0 >= '(' && LA31_0 <= '[')||(LA31_0 >= ']' && LA31_0 <= 0xFFFF)) ) {
|
|
alt31=2;
|
|
}
|
|
|
|
|
|
switch (alt31) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:52:35: ESC // alt
|
|
{
|
|
|
|
|
|
[self mESC]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
case 2 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:52:41: . // alt
|
|
{
|
|
|
|
[self matchAny]; if ( state.failed ) return ;
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
default :
|
|
goto loop31;
|
|
}
|
|
} while (YES);
|
|
loop31: ;
|
|
|
|
|
|
|
|
[self matchChar:'\'']; if ( state.failed ) return ;
|
|
|
|
|
|
}
|
|
|
|
/* token+rule list labels */
|
|
|
|
state.type = _type;
|
|
state.channel = _channel;
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "CHAR" */
|
|
// $ANTLR start "WS"
|
|
- (void) mWS
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
NSInteger _type = WS;
|
|
NSInteger _channel = TokenChannelDefault;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:55:5: ( ( ' ' | '\\t' | '\\n' )+ ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:55:9: ( ' ' | '\\t' | '\\n' )+ // alt
|
|
{
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:55:9: ( ' ' | '\\t' | '\\n' )+ // positiveClosureBlock
|
|
NSInteger cnt32 = 0;
|
|
do {
|
|
NSInteger alt32 = 2;
|
|
NSInteger LA32_0 = [input LA:1];
|
|
if ( ((LA32_0 >= '\t' && LA32_0 <= '\n')||LA32_0==' ') ) {
|
|
alt32=1;
|
|
}
|
|
|
|
|
|
switch (alt32) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g: // alt
|
|
{
|
|
|
|
if ((([input LA:1] >= '\t') && ([input LA:1] <= '\n'))||[input LA:1] == ' ') {
|
|
[input consume];
|
|
state.failed = NO;
|
|
|
|
} else {
|
|
if ( state.backtracking > 0 ) { state.failed = YES; return ; }
|
|
|
|
MismatchedSetException *mse = [MismatchedSetException newException:nil stream:input];
|
|
[self recover:mse];
|
|
@throw mse;
|
|
}
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
default :
|
|
if ( cnt32 >= 1 )
|
|
goto loop32;
|
|
if ( state.backtracking > 0 ) { state.failed = YES; return ; }
|
|
|
|
EarlyExitException *eee =
|
|
[EarlyExitException newException:input decisionNumber:32];
|
|
@throw eee;
|
|
}
|
|
cnt32++;
|
|
} while (YES);
|
|
loop32: ;
|
|
|
|
|
|
}
|
|
|
|
/* token+rule list labels */
|
|
|
|
state.type = _type;
|
|
state.channel = _channel;
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "WS" */
|
|
// $ANTLR start "QID"
|
|
- (void) mQID
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:59:5: ( ID ( '.' ID )* ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:59:7: ID ( '.' ID )* // alt
|
|
{
|
|
|
|
|
|
[self mID]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
do {
|
|
NSInteger alt33=2;
|
|
NSInteger LA33_0 = [input LA:1];
|
|
if ( (LA33_0=='.') ) {
|
|
alt33=1;
|
|
}
|
|
|
|
|
|
switch (alt33) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:59:11: '.' ID // alt
|
|
{
|
|
|
|
|
|
[self matchChar:'.']; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
[self mID]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
default :
|
|
goto loop33;
|
|
}
|
|
} while (YES);
|
|
loop33: ;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "QID" */
|
|
// $ANTLR start "QIDStar"
|
|
- (void) mQIDStar
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:68:2: ( ID ( '.' ID )* ( '.*' )? ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:68:4: ID ( '.' ID )* ( '.*' )? // alt
|
|
{
|
|
|
|
|
|
[self mID]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
do {
|
|
NSInteger alt34=2;
|
|
NSInteger LA34_0 = [input LA:1];
|
|
if ( (LA34_0=='.') ) {
|
|
NSInteger LA34_1 = [input LA:2];
|
|
if ( ((LA34_1 >= 'A' && LA34_1 <= 'Z')||LA34_1=='_'||(LA34_1 >= 'a' && LA34_1 <= 'z')) ) {
|
|
alt34=1;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
switch (alt34) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:68:8: '.' ID // alt
|
|
{
|
|
|
|
|
|
[self matchChar:'.']; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
[self mID]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
default :
|
|
goto loop34;
|
|
}
|
|
} while (YES);
|
|
loop34: ;
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:68:17: ( '.*' )? // block
|
|
NSInteger alt35=2;
|
|
NSInteger LA35_0 = [input LA:1];
|
|
|
|
if ( (LA35_0=='.') ) {
|
|
alt35=1;
|
|
}
|
|
switch (alt35) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:68:17: '.*' // alt
|
|
{
|
|
|
|
|
|
[self matchString:@".*"]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "QIDStar" */
|
|
// $ANTLR start "TYPE"
|
|
- (void) mTYPE
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:72:5: ( QID ( '[]' )? ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:72:9: QID ( '[]' )? // alt
|
|
{
|
|
|
|
|
|
[self mQID]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:72:13: ( '[]' )? // block
|
|
NSInteger alt36=2;
|
|
NSInteger LA36_0 = [input LA:1];
|
|
|
|
if ( (LA36_0=='[') ) {
|
|
alt36=1;
|
|
}
|
|
switch (alt36) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:72:13: '[]' // alt
|
|
{
|
|
|
|
|
|
[self matchString:@"[]"]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "TYPE" */
|
|
// $ANTLR start "ARG"
|
|
- (void) mARG
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:76:5: ( TYPE WS ID ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:76:9: TYPE WS ID // alt
|
|
{
|
|
|
|
|
|
[self mTYPE]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
|
|
[self mID]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "ARG" */
|
|
// $ANTLR start "ID"
|
|
- (void) mID
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:80:5: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:80:9: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* // alt
|
|
{
|
|
|
|
if ((([input LA:1] >= 'A') && ([input LA:1] <= 'Z'))||[input LA:1] == '_'||(([input LA:1] >= 'a') && ([input LA:1] <= 'z'))) {
|
|
[input consume];
|
|
state.failed = NO;
|
|
|
|
} else {
|
|
if ( state.backtracking > 0 ) { state.failed = YES; return ; }
|
|
|
|
MismatchedSetException *mse = [MismatchedSetException newException:nil stream:input];
|
|
[self recover:mse];
|
|
@throw mse;
|
|
}
|
|
|
|
|
|
|
|
do {
|
|
NSInteger alt37=2;
|
|
NSInteger LA37_0 = [input LA:1];
|
|
if ( ((LA37_0 >= '0' && LA37_0 <= '9')||(LA37_0 >= 'A' && LA37_0 <= 'Z')||LA37_0=='_'||(LA37_0 >= 'a' && LA37_0 <= 'z')) ) {
|
|
alt37=1;
|
|
}
|
|
|
|
|
|
switch (alt37) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g: // alt
|
|
{
|
|
|
|
if ((([input LA:1] >= '0') && ([input LA:1] <= '9'))||(([input LA:1] >= 'A') && ([input LA:1] <= 'Z'))||[input LA:1] == '_'||(([input LA:1] >= 'a') && ([input LA:1] <= 'z'))) {
|
|
[input consume];
|
|
state.failed = NO;
|
|
|
|
} else {
|
|
if ( state.backtracking > 0 ) { state.failed = YES; return ; }
|
|
|
|
MismatchedSetException *mse = [MismatchedSetException newException:nil stream:input];
|
|
[self recover:mse];
|
|
@throw mse;
|
|
}
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
default :
|
|
goto loop37;
|
|
}
|
|
} while (YES);
|
|
loop37: ;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "ID" */
|
|
// $ANTLR start "ESC"
|
|
- (void) mESC
|
|
{
|
|
//
|
|
/* ruleScopeSetUp */
|
|
|
|
/* ruleDeclarations */
|
|
|
|
@try {
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:84:5: ( '\\\\' ( '\"' | '\\'' | '\\\\' ) ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:84:7: '\\\\' ( '\"' | '\\'' | '\\\\' ) // alt
|
|
{
|
|
|
|
|
|
[self matchChar:'\\']; if ( state.failed ) return ;
|
|
|
|
|
|
if ([input LA:1] == '"'||[input LA:1] == '\''||[input LA:1] == '\\') {
|
|
[input consume];
|
|
state.failed = NO;
|
|
|
|
} else {
|
|
if ( state.backtracking > 0 ) { state.failed = YES; return ; }
|
|
|
|
MismatchedSetException *mse = [MismatchedSetException newException:nil stream:input];
|
|
[self recover:mse];
|
|
@throw mse;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
@finally {
|
|
//
|
|
/* ruleScopeCleanUp */
|
|
|
|
}
|
|
return;
|
|
}
|
|
/* $ANTLR end "ESC" */
|
|
- (void) mTokens
|
|
{
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:39: ( IMPORT | RETURN | CLASS | METHOD | FIELD | STAT | CALL | COMMENT | SL_COMMENT | STRING | CHAR | WS ) //ruleblock
|
|
NSInteger alt38=12;
|
|
unichar charLA38 = [input LA:1];
|
|
switch (charLA38) {
|
|
case 'i': ;
|
|
{
|
|
NSInteger LA38_1 = [input LA:2];
|
|
|
|
if ( ([self evaluateSyntacticPredicate:@selector(synpred1_Fuzzy_fragment)]) ) {
|
|
alt38=1;
|
|
}
|
|
else if ( ([self evaluateSyntacticPredicate:@selector(synpred4_Fuzzy_fragment)]) ) {
|
|
alt38=4;
|
|
}
|
|
else if ( ([self evaluateSyntacticPredicate:@selector(synpred5_Fuzzy_fragment)]) ) {
|
|
alt38=5;
|
|
}
|
|
else if ( ([self evaluateSyntacticPredicate:@selector(synpred6_Fuzzy_fragment)]) ) {
|
|
alt38=6;
|
|
}
|
|
else if ( ([self evaluateSyntacticPredicate:@selector(synpred7_Fuzzy_fragment)]) ) {
|
|
alt38=7;
|
|
}
|
|
else {
|
|
if ( state.backtracking > 0 ) { state.failed = YES; return ; }
|
|
|
|
NoViableAltException *nvae = [NoViableAltException newException:38 state:1 stream:input];
|
|
nvae.c = LA38_1;
|
|
@throw nvae;
|
|
|
|
}
|
|
}
|
|
break;
|
|
case 'r': ;
|
|
{
|
|
NSInteger LA38_7 = [input LA:2];
|
|
|
|
if ( ([self evaluateSyntacticPredicate:@selector(synpred2_Fuzzy_fragment)]) ) {
|
|
alt38=2;
|
|
}
|
|
else if ( ([self evaluateSyntacticPredicate:@selector(synpred4_Fuzzy_fragment)]) ) {
|
|
alt38=4;
|
|
}
|
|
else if ( ([self evaluateSyntacticPredicate:@selector(synpred5_Fuzzy_fragment)]) ) {
|
|
alt38=5;
|
|
}
|
|
else if ( ([self evaluateSyntacticPredicate:@selector(synpred7_Fuzzy_fragment)]) ) {
|
|
alt38=7;
|
|
}
|
|
else {
|
|
if ( state.backtracking > 0 ) { state.failed = YES; return ; }
|
|
|
|
NoViableAltException *nvae = [NoViableAltException newException:38 state:7 stream:input];
|
|
nvae.c = LA38_7;
|
|
@throw nvae;
|
|
|
|
}
|
|
}
|
|
break;
|
|
case 'c': ;
|
|
{
|
|
NSInteger LA38_9 = [input LA:2];
|
|
|
|
if ( ([self evaluateSyntacticPredicate:@selector(synpred3_Fuzzy_fragment)]) ) {
|
|
alt38=3;
|
|
}
|
|
else if ( ([self evaluateSyntacticPredicate:@selector(synpred4_Fuzzy_fragment)]) ) {
|
|
alt38=4;
|
|
}
|
|
else if ( ([self evaluateSyntacticPredicate:@selector(synpred5_Fuzzy_fragment)]) ) {
|
|
alt38=5;
|
|
}
|
|
else if ( ([self evaluateSyntacticPredicate:@selector(synpred7_Fuzzy_fragment)]) ) {
|
|
alt38=7;
|
|
}
|
|
else {
|
|
if ( state.backtracking > 0 ) { state.failed = YES; return ; }
|
|
|
|
NoViableAltException *nvae = [NoViableAltException newException:38 state:9 stream:input];
|
|
nvae.c = LA38_9;
|
|
@throw nvae;
|
|
|
|
}
|
|
}
|
|
break;
|
|
case 'f': ;
|
|
case 's': ;
|
|
case 'w': ;
|
|
{
|
|
NSInteger LA38_11 = [input LA:2];
|
|
|
|
if ( ([self evaluateSyntacticPredicate:@selector(synpred4_Fuzzy_fragment)]) ) {
|
|
alt38=4;
|
|
}
|
|
else if ( ([self evaluateSyntacticPredicate:@selector(synpred5_Fuzzy_fragment)]) ) {
|
|
alt38=5;
|
|
}
|
|
else if ( ([self evaluateSyntacticPredicate:@selector(synpred6_Fuzzy_fragment)]) ) {
|
|
alt38=6;
|
|
}
|
|
else if ( ([self evaluateSyntacticPredicate:@selector(synpred7_Fuzzy_fragment)]) ) {
|
|
alt38=7;
|
|
}
|
|
else {
|
|
if ( state.backtracking > 0 ) { state.failed = YES; return ; }
|
|
|
|
NoViableAltException *nvae = [NoViableAltException newException:38 state:11 stream:input];
|
|
nvae.c = LA38_11;
|
|
@throw nvae;
|
|
|
|
}
|
|
}
|
|
break;
|
|
case 'A': ;
|
|
case 'B': ;
|
|
case 'C': ;
|
|
case 'D': ;
|
|
case 'E': ;
|
|
case 'F': ;
|
|
case 'G': ;
|
|
case 'H': ;
|
|
case 'I': ;
|
|
case 'J': ;
|
|
case 'K': ;
|
|
case 'L': ;
|
|
case 'M': ;
|
|
case 'N': ;
|
|
case 'O': ;
|
|
case 'P': ;
|
|
case 'Q': ;
|
|
case 'R': ;
|
|
case 'S': ;
|
|
case 'T': ;
|
|
case 'U': ;
|
|
case 'V': ;
|
|
case 'W': ;
|
|
case 'X': ;
|
|
case 'Y': ;
|
|
case 'Z': ;
|
|
case '_': ;
|
|
case 'a': ;
|
|
case 'b': ;
|
|
case 'd': ;
|
|
case 'e': ;
|
|
case 'g': ;
|
|
case 'h': ;
|
|
case 'j': ;
|
|
case 'k': ;
|
|
case 'l': ;
|
|
case 'm': ;
|
|
case 'n': ;
|
|
case 'o': ;
|
|
case 'p': ;
|
|
case 'q': ;
|
|
case 't': ;
|
|
case 'u': ;
|
|
case 'v': ;
|
|
case 'x': ;
|
|
case 'y': ;
|
|
case 'z': ;
|
|
{
|
|
NSInteger LA38_12 = [input LA:2];
|
|
|
|
if ( ([self evaluateSyntacticPredicate:@selector(synpred4_Fuzzy_fragment)]) ) {
|
|
alt38=4;
|
|
}
|
|
else if ( ([self evaluateSyntacticPredicate:@selector(synpred5_Fuzzy_fragment)]) ) {
|
|
alt38=5;
|
|
}
|
|
else if ( ([self evaluateSyntacticPredicate:@selector(synpred7_Fuzzy_fragment)]) ) {
|
|
alt38=7;
|
|
}
|
|
else {
|
|
if ( state.backtracking > 0 ) { state.failed = YES; return ; }
|
|
|
|
NoViableAltException *nvae = [NoViableAltException newException:38 state:12 stream:input];
|
|
nvae.c = LA38_12;
|
|
@throw nvae;
|
|
|
|
}
|
|
}
|
|
break;
|
|
case '/': ;
|
|
{
|
|
NSInteger LA38_13 = [input LA:2];
|
|
|
|
if ( ([self evaluateSyntacticPredicate:@selector(synpred8_Fuzzy_fragment)]) ) {
|
|
alt38=8;
|
|
}
|
|
else if ( ([self evaluateSyntacticPredicate:@selector(synpred9_Fuzzy_fragment)]) ) {
|
|
alt38=9;
|
|
}
|
|
else {
|
|
if ( state.backtracking > 0 ) { state.failed = YES; return ; }
|
|
|
|
NoViableAltException *nvae = [NoViableAltException newException:38 state:13 stream:input];
|
|
nvae.c = LA38_13;
|
|
@throw nvae;
|
|
|
|
}
|
|
}
|
|
break;
|
|
case '"': ;
|
|
{
|
|
alt38=10;
|
|
}
|
|
break;
|
|
case '\'': ;
|
|
{
|
|
alt38=11;
|
|
}
|
|
break;
|
|
case '\t': ;
|
|
case '\n': ;
|
|
case ' ': ;
|
|
{
|
|
alt38=12;
|
|
}
|
|
break;
|
|
|
|
default: ;
|
|
if ( state.backtracking > 0 ) { state.failed = YES; return ; }
|
|
|
|
NoViableAltException *nvae = [NoViableAltException newException:38 state:0 stream:input];
|
|
nvae.c = charLA38;
|
|
@throw nvae;
|
|
|
|
}
|
|
|
|
switch (alt38) {
|
|
case 1 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:41: IMPORT // alt
|
|
{
|
|
|
|
|
|
[self mIMPORT]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
case 2 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:48: RETURN // alt
|
|
{
|
|
|
|
|
|
[self mRETURN]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
case 3 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:55: CLASS // alt
|
|
{
|
|
|
|
|
|
[self mCLASS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
case 4 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:61: METHOD // alt
|
|
{
|
|
|
|
|
|
[self mMETHOD]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
case 5 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:68: FIELD // alt
|
|
{
|
|
|
|
|
|
[self mFIELD]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
case 6 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:74: STAT // alt
|
|
{
|
|
|
|
|
|
[self mSTAT]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
case 7 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:79: CALL // alt
|
|
{
|
|
|
|
|
|
[self mCALL]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
case 8 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:84: COMMENT // alt
|
|
{
|
|
|
|
|
|
[self mCOMMENT]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
case 9 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:92: SL_COMMENT // alt
|
|
{
|
|
|
|
|
|
[self mSL_COMMENT]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
case 10 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:103: STRING // alt
|
|
{
|
|
|
|
|
|
[self mSTRING]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
case 11 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:110: CHAR // alt
|
|
{
|
|
|
|
|
|
[self mCHAR]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
case 12 : ;
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:115: WS // alt
|
|
{
|
|
|
|
|
|
[self mWS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
// $ANTLR start synpred1_Fuzzy_fragment
|
|
- (void) synpred1_Fuzzy_fragment
|
|
{
|
|
/* ruleLabelDefs entry */
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:41: ( IMPORT ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:41: IMPORT // alt
|
|
{
|
|
|
|
|
|
[self mIMPORT]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
|
|
} // $ANTLR end synpred1_Fuzzy_fragment
|
|
// $ANTLR start synpred2_Fuzzy_fragment
|
|
- (void) synpred2_Fuzzy_fragment
|
|
{
|
|
/* ruleLabelDefs entry */
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:48: ( RETURN ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:48: RETURN // alt
|
|
{
|
|
|
|
|
|
[self mRETURN]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
|
|
} // $ANTLR end synpred2_Fuzzy_fragment
|
|
// $ANTLR start synpred3_Fuzzy_fragment
|
|
- (void) synpred3_Fuzzy_fragment
|
|
{
|
|
/* ruleLabelDefs entry */
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:55: ( CLASS ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:55: CLASS // alt
|
|
{
|
|
|
|
|
|
[self mCLASS]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
|
|
} // $ANTLR end synpred3_Fuzzy_fragment
|
|
// $ANTLR start synpred4_Fuzzy_fragment
|
|
- (void) synpred4_Fuzzy_fragment
|
|
{
|
|
/* ruleLabelDefs entry */
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:61: ( METHOD ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:61: METHOD // alt
|
|
{
|
|
|
|
|
|
[self mMETHOD]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
|
|
} // $ANTLR end synpred4_Fuzzy_fragment
|
|
// $ANTLR start synpred5_Fuzzy_fragment
|
|
- (void) synpred5_Fuzzy_fragment
|
|
{
|
|
/* ruleLabelDefs entry */
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:68: ( FIELD ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:68: FIELD // alt
|
|
{
|
|
|
|
|
|
[self mFIELD]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
|
|
} // $ANTLR end synpred5_Fuzzy_fragment
|
|
// $ANTLR start synpred6_Fuzzy_fragment
|
|
- (void) synpred6_Fuzzy_fragment
|
|
{
|
|
/* ruleLabelDefs entry */
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:74: ( STAT ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:74: STAT // alt
|
|
{
|
|
|
|
|
|
[self mSTAT]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
|
|
} // $ANTLR end synpred6_Fuzzy_fragment
|
|
// $ANTLR start synpred7_Fuzzy_fragment
|
|
- (void) synpred7_Fuzzy_fragment
|
|
{
|
|
/* ruleLabelDefs entry */
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:79: ( CALL ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:79: CALL // alt
|
|
{
|
|
|
|
|
|
[self mCALL]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
|
|
} // $ANTLR end synpred7_Fuzzy_fragment
|
|
// $ANTLR start synpred8_Fuzzy_fragment
|
|
- (void) synpred8_Fuzzy_fragment
|
|
{
|
|
/* ruleLabelDefs entry */
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:84: ( COMMENT ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:84: COMMENT // alt
|
|
{
|
|
|
|
|
|
[self mCOMMENT]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
|
|
} // $ANTLR end synpred8_Fuzzy_fragment
|
|
// $ANTLR start synpred9_Fuzzy_fragment
|
|
- (void) synpred9_Fuzzy_fragment
|
|
{
|
|
/* ruleLabelDefs entry */
|
|
|
|
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:92: ( SL_COMMENT ) // ruleBlockSingleAlt
|
|
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/fuzzy/Fuzzy.g:1:92: SL_COMMENT // alt
|
|
{
|
|
|
|
|
|
[self mSL_COMMENT]; if ( state.failed ) return ;
|
|
|
|
|
|
|
|
}
|
|
|
|
} // $ANTLR end synpred9_Fuzzy_fragment
|
|
|
|
@end /* end of Fuzzy implementation line 397 */ |