Home | History | Annotate | Download | only in output1
      1 /** \file
      2  *  This OBJC source file was generated by $ANTLR version 3.2 Aug 20, 2010 15:00:19
      3  *
      4  *     -  From the grammar source file : /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g
      5  *     -                            On : 2010-08-20 15:03:14
      6  *     -                for the parser : TreeRewriteParserParser *
      7  * Editing it, at least manually, is not wise.
      8  *
      9  * C language generator and runtime by Jim Idle, jimi|hereisanat|idle|dotgoeshere|ws.
     10  *
     11  *
     12 */
     13 // [The "BSD licence"]
     14 // Copyright (c) 2010 Alan Condit
     15 //
     16 // All rights reserved.
     17 //
     18 // Redistribution and use in source and binary forms, with or without
     19 // modification, are permitted provided that the following conditions
     20 // are met:
     21 // 1. Redistributions of source code must retain the above copyright
     22 //    notice, this list of conditions and the following disclaimer.
     23 // 2. Redistributions in binary form must reproduce the above copyright
     24 //    notice, this list of conditions and the following disclaimer in the
     25 //    documentation and/or other materials provided with the distribution.
     26 // 3. The name of the author may not be used to endorse or promote products
     27 //    derived from this software without specific prior written permission.
     28 //
     29 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     30 // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     31 // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     32 // IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     33 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     34 // NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     35 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     36 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     37 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     38 // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     39 
     40 // $ANTLR 3.2 Aug 20, 2010 15:00:19 /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g 2010-08-20 15:03:14
     41 
     42 /* -----------------------------------------
     43  * Include the ANTLR3 generated header file.
     44  */
     45 #import "TreeRewriteParser.h"
     46 /* ----------------------------------------- */
     47 
     48 
     49 /* ============================================================================= */
     50 
     51 /* =============================================================================
     52  * Start of recognizer
     53  */
     54 
     55 
     56 
     57 #pragma mark Bitsets
     58 static ANTLRBitSet *FOLLOW_INT_in_rule26;
     59 
     60 const unsigned long long FOLLOW_INT_in_rule26_data[] = { 0x0000000000000010LL};
     61 
     62 static ANTLRBitSet *FOLLOW_subrule_in_rule28;
     63 
     64 const unsigned long long FOLLOW_subrule_in_rule28_data[] = { 0x0000000000000002LL};
     65 
     66 static ANTLRBitSet *FOLLOW_INT_in_subrule53;
     67 
     68 const unsigned long long FOLLOW_INT_in_subrule53_data[] = { 0x0000000000000002LL};
     69 
     70 
     71 
     72 #pragma mark Dynamic Global Scopes
     73 
     74 #pragma mark Dynamic Rule Scopes
     75 
     76 #pragma mark Rule return scopes start
     77 @implementation TreeRewriteParser_rule_return
     78 @synthesize tree;
     79 + (TreeRewriteParser_rule_return *)newTreeRewriteParser_rule_return
     80 {
     81     return [[[TreeRewriteParser_rule_return alloc] init] retain];
     82 }
     83 
     84 // returnScope.methods
     85 - (ANTLRCommonTree *)getTree
     86 {
     87     return tree;
     88 }
     89 
     90 - (void) setTree:(ANTLRCommonTree *)aTree
     91 {
     92     if (tree != aTree) {
     93         if (tree != nil) [tree release];
     94         if (aTree != nil) [aTree retain];
     95         tree = aTree;
     96     }
     97 }
     98 
     99 - (void) dealloc
    100 {
    101     [self setTree:nil];
    102     [super dealloc];
    103 }
    104 
    105 
    106 
    107 
    108 @end
    109 
    110 @implementation TreeRewriteParser_subrule_return
    111 @synthesize tree;
    112 + (TreeRewriteParser_subrule_return *)newTreeRewriteParser_subrule_return
    113 {
    114     return [[[TreeRewriteParser_subrule_return alloc] init] retain];
    115 }
    116 
    117 // returnScope.methods
    118 - (ANTLRCommonTree *)getTree
    119 {
    120     return tree;
    121 }
    122 
    123 - (void) setTree:(ANTLRCommonTree *)aTree
    124 {
    125     if (tree != aTree) {
    126         if (tree != nil) [tree release];
    127         if (aTree != nil) [aTree retain];
    128         tree = aTree;
    129     }
    130 }
    131 
    132 - (void) dealloc
    133 {
    134     [self setTree:nil];
    135     [super dealloc];
    136 }
    137 
    138 
    139 
    140 
    141 @end
    142 
    143 
    144 
    145 @implementation TreeRewriteParser  // line 610
    146 
    147 + (void) initialize
    148 {
    149     FOLLOW_INT_in_rule26 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_rule26_data Count:(NSUInteger)1] retain];
    150     FOLLOW_subrule_in_rule28 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_subrule_in_rule28_data Count:(NSUInteger)1] retain];
    151     FOLLOW_INT_in_subrule53 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_subrule53_data Count:(NSUInteger)1] retain];
    152 
    153     [ANTLRBaseRecognizer setTokenNames:[[[NSArray alloc] initWithObjects:@"<invalid>", @"<EOR>", @"<DOWN>", @"<UP>",
    154  @"INT", @"WS", nil] retain]];
    155 }
    156 
    157 + (TreeRewriteParser *)newTreeRewriteParser:(id<ANTLRTokenStream>)aStream
    158 {
    159     return [[TreeRewriteParser alloc] initWithTokenStream:aStream];
    160 
    161 }
    162 
    163 - (id) initWithTokenStream:(id<ANTLRTokenStream>)aStream
    164 {
    165     if ((self = [super initWithTokenStream:aStream State:[[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:2+1] retain]]) != nil) {
    166 
    167 
    168 
    169         // start of actions-actionScope-init
    170         // start of init
    171         // genericParser.init
    172         [self setTreeAdaptor:[[ANTLRCommonTreeAdaptor newANTLRCommonTreeAdaptor] retain]];
    173     }
    174     return self;
    175 }
    176 
    177 - (void) dealloc
    178 {
    179     [self setTreeAdaptor:nil];
    180 
    181     [super dealloc];
    182 }
    183 // start actions.actionScope.methods
    184 // start methods()
    185 // genericParser.methods
    186 // parserMethods
    187 - (id<ANTLRTreeAdaptor>) getTreeAdaptor
    188 {
    189 	return treeAdaptor;
    190 }
    191 
    192 - (void) setTreeAdaptor:(id<ANTLRTreeAdaptor>)aTreeAdaptor
    193 {
    194 	if (aTreeAdaptor != treeAdaptor) {
    195 		treeAdaptor = aTreeAdaptor;
    196 	}
    197 }
    198 // start rules
    199 /*
    200  * $ANTLR start rule
    201  * /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g:8:1: rule : INT subrule -> ^( subrule INT ) ;
    202  */
    203 - (TreeRewriteParser_rule_return *) rule
    204 {
    205     // ruleScopeSetUp
    206 
    207     // ruleDeclarations
    208     TreeRewriteParser_rule_return * retval = [TreeRewriteParser_rule_return newTreeRewriteParser_rule_return];
    209     [retval setStart:[input LT:1]];
    210 
    211     ANTLRCommonTree *root_0 = nil;
    212 
    213     @try {
    214         // ruleLabelDefs
    215         id<ANTLRToken> INT1 = nil;
    216         TreeRewriteParser_subrule_return * subrule2 = nil;
    217 
    218 
    219         ANTLRCommonTree *INT1_tree=nil;
    220         ANTLRRewriteRuleTokenStream *stream_INT =
    221             [[ANTLRRewriteRuleTokenStream newANTLRRewriteRuleTokenStream:treeAdaptor
    222                                                              description:@"token INT"] retain];
    223         ANTLRRewriteRuleSubtreeStream *stream_subrule =
    224             [[ANTLRRewriteRuleSubtreeStream newANTLRRewriteRuleSubtreeStream:treeAdaptor
    225                                                                 description:@"rule subrule"] retain];
    226         // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g:8:5: ( INT subrule -> ^( subrule INT ) ) // ruleBlockSingleAlt
    227         // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g:8:7: INT subrule // alt
    228         {
    229         INT1=(id<ANTLRToken>)[self match:input TokenType:INT Follow:FOLLOW_INT_in_rule26];
    230             [stream_INT addElement:INT1];
    231           /* element() */
    232         [self pushFollow:FOLLOW_subrule_in_rule28];
    233         subrule2 = [self subrule];
    234         [self popFollow];
    235 
    236 
    237         [stream_subrule addElement:[subrule2 getTree]];  /* element() */
    238          /* elements */
    239 
    240         // AST REWRITE
    241         // elements: INT, subrule
    242         // token labels:
    243         // rule labels: retval
    244         // token list labels:
    245         // rule list labels:
    246         // wildcard labels:
    247          [retval setTree:root_0];
    248 
    249         retval.tree = root_0;
    250 
    251         ANTLRRewriteRuleSubtreeStream *stream_retval =
    252             [[ANTLRRewriteRuleSubtreeStream newANTLRRewriteRuleSubtreeStream:treeAdaptor
    253                                                                 description:@"token retval"
    254                                                                     element:retval!=nil?[retval getTree]:nil] retain];
    255 
    256         root_0 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
    257 
    258         // 8:19: -> ^( subrule INT )
    259         {
    260             // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g:8:22: ^( subrule INT )
    261             {
    262                 ANTLRCommonTree *root_1 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
    263                 root_1 = (ANTLRCommonTree *)[treeAdaptor becomeRoot:(id<ANTLRTree>)[stream_subrule nextNode]
    264                                                                          old:root_1];
    265 
    266                  // TODO: args:
    267                 [treeAdaptor addChild:[stream_INT nextNode] toTree:root_1];
    268 
    269                 [treeAdaptor addChild:root_1 toTree:root_0];
    270             }
    271 
    272         }
    273 
    274         retval.tree = root_0;
    275 
    276         }
    277 
    278         // token+rule list labels
    279         [retval setStop:[input LT:-1]];
    280 
    281         [stream_INT release];
    282         [stream_subrule release];
    283 
    284         retval.tree = (ANTLRCommonTree *)[treeAdaptor rulePostProcessing:root_0];
    285         [treeAdaptor setTokenBoundaries:retval.tree From:retval.startToken To:retval.stopToken];
    286 
    287     }
    288     @catch (ANTLRRecognitionException *re) {
    289         [self reportError:re];
    290         [self recover:input Exception:re];
    291         retval.tree = (ANTLRCommonTree *)[treeAdaptor errorNode:input From:retval.startToken To:[input LT:-1] Exception:re];
    292 
    293     }    @finally {
    294     }
    295     return retval;
    296 }
    297 /* $ANTLR end rule */
    298 /*
    299  * $ANTLR start subrule
    300  * /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g:11:1: subrule : INT ;
    301  */
    302 - (TreeRewriteParser_subrule_return *) subrule
    303 {
    304     // ruleScopeSetUp
    305 
    306     // ruleDeclarations
    307     TreeRewriteParser_subrule_return * retval = [TreeRewriteParser_subrule_return newTreeRewriteParser_subrule_return];
    308     [retval setStart:[input LT:1]];
    309 
    310     ANTLRCommonTree *root_0 = nil;
    311 
    312     @try {
    313         // ruleLabelDefs
    314         id<ANTLRToken> INT3 = nil;
    315 
    316         ANTLRCommonTree *INT3_tree=nil;
    317 
    318         // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g:12:5: ( INT ) // ruleBlockSingleAlt
    319         // /usr/local/ANTLR3-ObjC2.0-Runtime/Framework/examples/treerewrite/TreeRewrite.g:12:9: INT // alt
    320         {
    321         root_0 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
    322 
    323         INT3=(id<ANTLRToken>)[self match:input TokenType:INT Follow:FOLLOW_INT_in_subrule53];
    324         INT3_tree = (ANTLRCommonTree *)[[treeAdaptor createTree:INT3] retain];
    325         [treeAdaptor addChild:INT3_tree  toTree:root_0];
    326           /* element() */
    327          /* elements */
    328         }
    329 
    330         // token+rule list labels
    331         [retval setStop:[input LT:-1]];
    332 
    333 
    334         retval.tree = (ANTLRCommonTree *)[treeAdaptor rulePostProcessing:root_0];
    335         [treeAdaptor setTokenBoundaries:retval.tree From:retval.startToken To:retval.stopToken];
    336 
    337     }
    338     @catch (ANTLRRecognitionException *re) {
    339         [self reportError:re];
    340         [self recover:input Exception:re];
    341         retval.tree = (ANTLRCommonTree *)[treeAdaptor errorNode:input From:retval.startToken To:[input LT:-1] Exception:re];
    342 
    343     }    @finally {
    344     }
    345     return retval;
    346 }
    347 /* $ANTLR end subrule */
    348 
    349 @end /* end of TreeRewriteParser implementation line 669 */
    350 
    351 
    352 /* End of code
    353  * =============================================================================
    354  */
    355