Home | History | Annotate | Download | only in treeparser
      1 /** \file
      2  *  This OBJC source file was generated by $ANTLR version ${project.version} ${buildNumber}
      3  *
      4  *     -  From the grammar source file : Lang.g
      5  *     -                            On : 2011-05-06 17:38:52
      6  *     -                for the parser : LangParserParser
      7  *
      8  * Editing it, at least manually, is not wise.
      9  *
     10  * ObjC language generator and runtime by Alan Condit, acondit|hereisanat|ipns|dotgoeshere|com.
     11  *
     12  *
     13 */
     14 // $ANTLR ${project.version} ${buildNumber} Lang.g 2011-05-06 17:38:52
     15 
     16 
     17 /* -----------------------------------------
     18  * Include the ANTLR3 generated header file.
     19  */
     20 #import "LangParser.h"
     21 /* ----------------------------------------- */
     22 
     23 
     24 /* ============================================================================= */
     25 /* =============================================================================
     26  * Start of recognizer
     27  */
     28 
     29 #pragma mark Bitsets
     30 static ANTLRBitSet *FOLLOW_decl_in_start41;
     31 static const unsigned long long FOLLOW_decl_in_start41_data[] = { 0x0000000000000002LL};
     32 static ANTLRBitSet *FOLLOW_type_in_decl50;
     33 static const unsigned long long FOLLOW_type_in_decl50_data[] = { 0x0000000000000040LL};
     34 static ANTLRBitSet *FOLLOW_ID_in_decl52;
     35 static const unsigned long long FOLLOW_ID_in_decl52_data[] = { 0x0000000000000400LL};
     36 static ANTLRBitSet *FOLLOW_10_in_decl54;
     37 static const unsigned long long FOLLOW_10_in_decl54_data[] = { 0x0000000000000002LL};
     38 
     39 
     40 #pragma mark Dynamic Global Scopes
     41 
     42 #pragma mark Dynamic Rule Scopes
     43 
     44 #pragma mark Rule Return Scopes start
     45 @implementation LangParser_start_return /* returnScope */
     46 /* AST returnScope.synthesize */
     47 @synthesize tree; /* start of synthesize -- OBJC-Line 1837 */
     48 + (LangParser_start_return *)newLangParser_start_return
     49 {
     50     return [[[LangParser_start_return alloc] init] retain];
     51 }
     52 
     53 - (id) init
     54 {
     55     self = [super init];
     56     return self;
     57 }
     58 
     59 /* AST returnScope.methods */
     60 - (ANTLRCommonTree *)getTree
     61 {
     62     return tree;
     63 }
     64 
     65 - (void) setTree:(ANTLRCommonTree *)aTree
     66 {
     67     if (tree != aTree) {
     68         if (tree != nil) [tree release];
     69         if (aTree != nil) [aTree retain];
     70         tree = aTree;
     71     }
     72 }
     73 
     74 - (void) dealloc
     75 {
     76     self.tree = nil;
     77     [super dealloc];
     78 }
     79 
     80 
     81 
     82 @end /* end of returnScope implementation */
     83 
     84 
     85 @implementation LangParser_decl_return /* returnScope */
     86 /* AST returnScope.synthesize */
     87 @synthesize tree; /* start of synthesize -- OBJC-Line 1837 */
     88 + (LangParser_decl_return *)newLangParser_decl_return
     89 {
     90     return [[[LangParser_decl_return alloc] init] retain];
     91 }
     92 
     93 - (id) init
     94 {
     95     self = [super init];
     96     return self;
     97 }
     98 
     99 /* AST returnScope.methods */
    100 - (ANTLRCommonTree *)getTree
    101 {
    102     return tree;
    103 }
    104 
    105 - (void) setTree:(ANTLRCommonTree *)aTree
    106 {
    107     if (tree != aTree) {
    108         if (tree != nil) [tree release];
    109         if (aTree != nil) [aTree retain];
    110         tree = aTree;
    111     }
    112 }
    113 
    114 - (void) dealloc
    115 {
    116     self.tree = nil;
    117     [super dealloc];
    118 }
    119 
    120 
    121 
    122 @end /* end of returnScope implementation */
    123 
    124 
    125 @implementation LangParser_type_return /* returnScope */
    126 /* AST returnScope.synthesize */
    127 @synthesize tree; /* start of synthesize -- OBJC-Line 1837 */
    128 + (LangParser_type_return *)newLangParser_type_return
    129 {
    130     return [[[LangParser_type_return alloc] init] retain];
    131 }
    132 
    133 - (id) init
    134 {
    135     self = [super init];
    136     return self;
    137 }
    138 
    139 /* AST returnScope.methods */
    140 - (ANTLRCommonTree *)getTree
    141 {
    142     return tree;
    143 }
    144 
    145 - (void) setTree:(ANTLRCommonTree *)aTree
    146 {
    147     if (tree != aTree) {
    148         if (tree != nil) [tree release];
    149         if (aTree != nil) [aTree retain];
    150         tree = aTree;
    151     }
    152 }
    153 
    154 - (void) dealloc
    155 {
    156     self.tree = nil;
    157     [super dealloc];
    158 }
    159 
    160 
    161 
    162 @end /* end of returnScope implementation */
    163 
    164 
    165 //#pragma mark Rule return scopes start
    166 //
    167 
    168 #pragma mark Rule return scopes start
    169 
    170 @implementation LangParser  // line 637
    171 
    172 /* ObjC start of ruleAttributeScope */
    173 #pragma mark Dynamic Rule Scopes
    174 /* ObjC end of ruleAttributeScope */
    175 #pragma mark global Attribute Scopes
    176 /* ObjC start globalAttributeScope */
    177 /* ObjC end globalAttributeScope */
    178 /* ObjC start actions.(actionScope).synthesize */
    179 /* ObjC end actions.(actionScope).synthesize */
    180 /* ObjC start synthesize() */
    181 /* AST genericParser.synthesize */
    182 /* AST parserProperties */
    183 @synthesize treeAdaptor;
    184 /* ObjC end synthesize() */
    185 
    186 + (void) initialize
    187 {
    188     #pragma mark Bitsets
    189     FOLLOW_decl_in_start41 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_decl_in_start41_data Count:(NSUInteger)1] retain];
    190     FOLLOW_type_in_decl50 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_type_in_decl50_data Count:(NSUInteger)1] retain];
    191     FOLLOW_ID_in_decl52 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_ID_in_decl52_data Count:(NSUInteger)1] retain];
    192     FOLLOW_10_in_decl54 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_10_in_decl54_data Count:(NSUInteger)1] retain];
    193 
    194     [ANTLRBaseRecognizer setTokenNames:[[AMutableArray arrayWithObjects:@"<invalid>", @"<EOR>", @"<DOWN>", @"<UP>",
    195  @"DECL", @"FLOATTYPE", @"ID", @"INT", @"INTTYPE", @"WS", @"';'", nil] retain]];
    196     [ANTLRBaseRecognizer setGrammarFileName:@"Lang.g"];
    197 }
    198 
    199 + (LangParser *)newLangParser:(id<ANTLRTokenStream>)aStream
    200 {
    201     return [[LangParser alloc] initWithTokenStream:aStream];
    202 
    203 
    204 }
    205 
    206 - (id) initWithTokenStream:(id<ANTLRTokenStream>)aStream
    207 {
    208     self = [super initWithTokenStream:aStream State:[[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:3+1] retain]];
    209     if ( self != nil ) {
    210 
    211 
    212         /* start of actions-actionScope-init */
    213         /* start of init */
    214         /* AST genericParser.init */
    215         [self setTreeAdaptor:[[ANTLRCommonTreeAdaptor newTreeAdaptor] retain]];
    216     }
    217     return self;
    218 }
    219 
    220 - (void) dealloc
    221 {
    222     /* AST genericParser.dealloc */
    223     [self setTreeAdaptor:nil];
    224 
    225     [super dealloc];
    226 }
    227 
    228 /* ObjC start members */
    229 /* ObjC end members */
    230 /* ObjC start actions.(actionScope).methods */
    231 /* ObjC end actions.(actionScope).methods */
    232 /* ObjC start methods() */
    233 /* AST genericParser.methods */
    234 /* AST parserMethods */
    235 - (id<ANTLRTreeAdaptor>) getTreeAdaptor
    236 {
    237 	return treeAdaptor;
    238 }
    239 
    240 - (void) setTreeAdaptor:(id<ANTLRTreeAdaptor>)aTreeAdaptor
    241 {
    242 	if (aTreeAdaptor != treeAdaptor) {
    243 		treeAdaptor = aTreeAdaptor;
    244 	}
    245 }
    246 /* ObjC end methods() */
    247 /* ObjC start rules */
    248 /*
    249  * $ANTLR start start
    250  * Lang.g:10:1: start : decl ;
    251  */
    252 - (LangParser_start_return *) start
    253 {
    254     /* my ruleScopeSetUp */
    255     /* Terence's stuff */
    256 
    257     /* AST ruleDeclarations */
    258     LangParser_start_return * retval = [LangParser_start_return newLangParser_start_return];
    259     [retval setStart:[input LT:1]];
    260 
    261 
    262     ANTLRCommonTree *root_0 = nil;
    263 
    264     @try {
    265         /* AST ruleLabelDefs */
    266          LangParser_decl_return * decl1 = nil ;
    267 
    268 
    269 
    270         // Lang.g:10:7: ( decl ) // ruleBlockSingleAlt
    271         // Lang.g:10:9: decl // alt
    272         {
    273         root_0 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
    274 
    275 
    276         /* ASTParser ruleRef */
    277         /* ruleRef */
    278         [self pushFollow:FOLLOW_decl_in_start41];
    279         decl1 = [self decl];
    280 
    281         [self popFollow];
    282 
    283 
    284         [treeAdaptor addChild:[decl1 getTree] toTree:root_0];
    285 
    286         }
    287 
    288         /* ASTParser ruleCleanUp */
    289         /* AST ruleCleanUp */
    290         // token+rule list labels
    291         [retval setStop:[input LT:-1]];
    292 
    293 
    294 
    295             retval.tree = (ANTLRCommonTree *)[treeAdaptor rulePostProcessing:root_0];
    296             [treeAdaptor setTokenBoundaries:retval.tree From:retval.start To:retval.stopToken];
    297 
    298     }
    299     @catch (ANTLRRecognitionException *re) {
    300         [self reportError:re];
    301         [self recover:input Exception:re];
    302         /* ASTParser rule.setErrorReturnValue */
    303         retval.tree = (ANTLRCommonTree *)[treeAdaptor errorNode:input From:retval.start To:[input LT:-1] Exception:re];
    304 
    305     }
    306 
    307     @finally {
    308         /* Terence's stuff */
    309 
    310     }
    311     return retval;
    312 }
    313 /* $ANTLR end start */
    314 
    315 /*
    316  * $ANTLR start decl
    317  * Lang.g:12:1: decl : type ID ';' -> ^( DECL type ID ) ;
    318  */
    319 - (LangParser_decl_return *) decl
    320 {
    321     /* my ruleScopeSetUp */
    322     /* Terence's stuff */
    323 
    324     /* AST ruleDeclarations */
    325     LangParser_decl_return * retval = [LangParser_decl_return newLangParser_decl_return];
    326     [retval setStart:[input LT:1]];
    327 
    328 
    329     ANTLRCommonTree *root_0 = nil;
    330 
    331     @try {
    332         /* AST ruleLabelDefs */
    333         ANTLRCommonToken *ID3 = nil;
    334         ANTLRCommonToken *char_literal4 = nil;
    335          LangParser_type_return * type2 = nil ;
    336 
    337 
    338         ANTLRCommonTree *ID3_tree=nil;
    339         ANTLRCommonTree *char_literal4_tree=nil;
    340         ANTLRRewriteRuleTokenStream *stream_10 =
    341             [[ANTLRRewriteRuleTokenStream newANTLRRewriteRuleTokenStream:treeAdaptor
    342                                                              description:@"token 10"] retain];
    343         ANTLRRewriteRuleTokenStream *stream_ID =
    344             [[ANTLRRewriteRuleTokenStream newANTLRRewriteRuleTokenStream:treeAdaptor
    345                                                              description:@"token ID"] retain];
    346         ANTLRRewriteRuleSubtreeStream *stream_type =
    347             [[ANTLRRewriteRuleSubtreeStream newANTLRRewriteRuleSubtreeStream:treeAdaptor
    348                                                                 description:@"rule type"] retain];
    349         // Lang.g:12:6: ( type ID ';' -> ^( DECL type ID ) ) // ruleBlockSingleAlt
    350         // Lang.g:12:8: type ID ';' // alt
    351         {
    352         /* ruleRef */
    353         [self pushFollow:FOLLOW_type_in_decl50];
    354         type2 = [self type];
    355 
    356         [self popFollow];
    357 
    358 
    359         [stream_type addElement:[type2 getTree]];
    360 
    361         ID3=(ANTLRCommonToken *)[self match:input TokenType:ID Follow:FOLLOW_ID_in_decl52];
    362             [stream_ID addElement:ID3];
    363 
    364 
    365         char_literal4=(ANTLRCommonToken *)[self match:input TokenType:10 Follow:FOLLOW_10_in_decl54];
    366             [stream_10 addElement:char_literal4];
    367 
    368 
    369         // AST REWRITE
    370         // elements: ID, type
    371         // token labels:
    372         // rule labels: retval
    373         // token list labels:
    374         // rule list labels:
    375         // wildcard labels:
    376         retval.tree = root_0;
    377 
    378         ANTLRRewriteRuleSubtreeStream *stream_retval =
    379             [[ANTLRRewriteRuleSubtreeStream newANTLRRewriteRuleSubtreeStream:treeAdaptor
    380                 description:@"token retval" element:retval!=nil?[retval getTree]:nil] retain];
    381 
    382         root_0 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
    383 
    384         // 12:20: -> ^( DECL type ID )
    385         {
    386             // Lang.g:12:23: ^( DECL type ID )
    387             {
    388                 ANTLRCommonTree *root_1 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
    389                 root_1 = (ANTLRCommonTree *)[treeAdaptor becomeRoot:
    390                         [treeAdaptor createTree:DECL Text:@"DECL"]
    391                  old:root_1];
    392 
    393                 [treeAdaptor addChild:[stream_type nextTree] toTree:root_1];
    394 
    395                  // TODO: args:
    396                 [treeAdaptor addChild:
    397                             [stream_ID nextNode]
    398                  toTree:root_1];
    399 
    400                 [treeAdaptor addChild:root_1 toTree:root_0];
    401             }
    402 
    403         }
    404 
    405 
    406         retval.tree = root_0;
    407 
    408 
    409         }
    410 
    411         /* ASTParser ruleCleanUp */
    412         /* AST ruleCleanUp */
    413         // token+rule list labels
    414         [retval setStop:[input LT:-1]];
    415 
    416 
    417         [stream_10 release];
    418         [stream_ID release];
    419         [stream_type release];
    420 
    421             retval.tree = (ANTLRCommonTree *)[treeAdaptor rulePostProcessing:root_0];
    422             [treeAdaptor setTokenBoundaries:retval.tree From:retval.start To:retval.stopToken];
    423 
    424     }
    425     @catch (ANTLRRecognitionException *re) {
    426         [self reportError:re];
    427         [self recover:input Exception:re];
    428         /* ASTParser rule.setErrorReturnValue */
    429         retval.tree = (ANTLRCommonTree *)[treeAdaptor errorNode:input From:retval.start To:[input LT:-1] Exception:re];
    430 
    431     }
    432 
    433     @finally {
    434         /* Terence's stuff */
    435 
    436     }
    437     return retval;
    438 }
    439 /* $ANTLR end decl */
    440 
    441 /*
    442  * $ANTLR start type
    443  * Lang.g:14:1: type : ( INTTYPE | FLOATTYPE );
    444  */
    445 - (LangParser_type_return *) type
    446 {
    447     /* my ruleScopeSetUp */
    448     /* Terence's stuff */
    449 
    450     /* AST ruleDeclarations */
    451     LangParser_type_return * retval = [LangParser_type_return newLangParser_type_return];
    452     [retval setStart:[input LT:1]];
    453 
    454 
    455     ANTLRCommonTree *root_0 = nil;
    456 
    457     @try {
    458         /* AST ruleLabelDefs */
    459         ANTLRCommonToken *set5 = nil;
    460 
    461         ANTLRCommonTree *set5_tree=nil;
    462 
    463         // Lang.g:14:6: ( INTTYPE | FLOATTYPE ) // ruleBlockSingleAlt
    464         // Lang.g: // alt
    465         {
    466         root_0 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
    467 
    468 
    469         /* ASTParser matchRuleBlockSet */
    470         /* ASTParser matchSet */
    471         set5 = (ANTLRCommonToken *)[input LT:1]; /* matchSet */
    472 
    473         if ([input LA:1] == FLOATTYPE||[input LA:1] == INTTYPE) {
    474             [input consume];
    475             [treeAdaptor addChild:/* ASTParser createNodeFromToken */
    476             (ANTLRCommonTree *)[[treeAdaptor create:set5] retain]
    477              toTree:root_0 ];
    478             [state setIsErrorRecovery:NO];
    479         } else {
    480             ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
    481             @throw mse;
    482         }
    483 
    484 
    485         }
    486 
    487         /* ASTParser ruleCleanUp */
    488         /* AST ruleCleanUp */
    489         // token+rule list labels
    490         [retval setStop:[input LT:-1]];
    491 
    492 
    493 
    494             retval.tree = (ANTLRCommonTree *)[treeAdaptor rulePostProcessing:root_0];
    495             [treeAdaptor setTokenBoundaries:retval.tree From:retval.start To:retval.stopToken];
    496 
    497     }
    498     @catch (ANTLRRecognitionException *re) {
    499         [self reportError:re];
    500         [self recover:input Exception:re];
    501         /* ASTParser rule.setErrorReturnValue */
    502         retval.tree = (ANTLRCommonTree *)[treeAdaptor errorNode:input From:retval.start To:[input LT:-1] Exception:re];
    503 
    504     }
    505 
    506     @finally {
    507         /* Terence's stuff */
    508 
    509     }
    510     return retval;
    511 }
    512 /* $ANTLR end type */
    513 /* ObjC end rules */
    514 
    515 @end /* end of LangParser implementation line 692 */
    516