blob: b4d635d09df2434b1bdaac59df353ccdda220910 [file] [log] [blame]
/** \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/treerewrite/TreeRewrite.g
* - On : 2012-02-16 17:42:35
* - for the parser : TreeRewriteParserParser
*
* 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/treerewrite/TreeRewrite.g 2012-02-16 17:42:35
/* -----------------------------------------
* Include the ANTLR3 generated header file.
*/
#import "TreeRewriteParser.h"
/* ----------------------------------------- */
/* ============================================================================= */
/* =============================================================================
* Start of recognizer
*/
#pragma mark Bitsets
static ANTLRBitSet *FOLLOW_INT_in_rule26;
static const unsigned long long FOLLOW_INT_in_rule26_data[] = { 0x0000000000000010LL};
static ANTLRBitSet *FOLLOW_subrule_in_rule28;
static const unsigned long long FOLLOW_subrule_in_rule28_data[] = { 0x0000000000000002LL};
static ANTLRBitSet *FOLLOW_INT_in_subrule53;
static const unsigned long long FOLLOW_INT_in_subrule53_data[] = { 0x0000000000000002LL};
#pragma mark Dynamic Global globalAttributeScopeImplementation
#pragma mark Dynamic Rule Scopes ruleAttributeScopeImplementation
#pragma mark Rule Return Scopes returnScopeImplementation
@implementation TreeRewriteParser_rule_return /* returnScopeImplementation */
/* AST returnScope.synthesize */
@synthesize tree; /* start of synthesize -- OBJC-Line 1837 */
+ (TreeRewriteParser_rule_return *)newTreeRewriteParser_rule_return
{
return [[[TreeRewriteParser_rule_return alloc] init] retain];
}
- (id) init
{
self = [super init];
return self;
}
/* AST returnScope.methods */
- (CommonTree *)getTree
{
return tree;
}
- (void) setTree:(CommonTree *)aTree
{
if (tree != aTree) {
if (tree != nil) [tree release];
if (aTree != nil) [aTree retain];
tree = aTree;
}
}
- (void) dealloc
{
self.tree = nil;
[super dealloc];
}
@end /* end of returnScope implementation */
@implementation TreeRewriteParser_subrule_return /* returnScopeImplementation */
/* AST returnScope.synthesize */
@synthesize tree; /* start of synthesize -- OBJC-Line 1837 */
+ (TreeRewriteParser_subrule_return *)newTreeRewriteParser_subrule_return
{
return [[[TreeRewriteParser_subrule_return alloc] init] retain];
}
- (id) init
{
self = [super init];
return self;
}
/* AST returnScope.methods */
- (CommonTree *)getTree
{
return tree;
}
- (void) setTree:(CommonTree *)aTree
{
if (tree != aTree) {
if (tree != nil) [tree release];
if (aTree != nil) [aTree retain];
tree = aTree;
}
}
- (void) dealloc
{
self.tree = nil;
[super dealloc];
}
@end /* end of returnScope implementation */
@implementation TreeRewriteParser // line 637
/* ObjC start of ruleAttributeScope */
#pragma mark Dynamic Rule Scopes ruleAttributeScope
/* ObjC end of ruleAttributeScope */
#pragma mark global Attribute Scopes globalAttributeScope
/* ObjC start globalAttributeScope */
/* ObjC end globalAttributeScope */
/* ObjC start actions.(actionScope).synthesize */
/* ObjC start synthesize() */
/* AST genericParser.synthesize */
/* AST parserProperties */
@synthesize treeAdaptor;
+ (void) initialize
{
#pragma mark Bitsets
FOLLOW_INT_in_rule26 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_rule26_data Count:(NSUInteger)1] retain];
FOLLOW_subrule_in_rule28 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_subrule_in_rule28_data Count:(NSUInteger)1] retain];
FOLLOW_INT_in_subrule53 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_subrule53_data Count:(NSUInteger)1] retain];
[BaseRecognizer setTokenNames:[[AMutableArray arrayWithObjects:@"<invalid>", @"<EOR>", @"<DOWN>", @"<UP>",
@"INT", @"WS", nil] retain]];
[BaseRecognizer setGrammarFileName:@"/Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g"];
}
+ (TreeRewriteParser *)newTreeRewriteParser:(id<TokenStream>)aStream
{
return [[TreeRewriteParser alloc] initWithTokenStream:aStream];
}
- (id) initWithTokenStream:(id<TokenStream>)aStream
{
self = [super initWithTokenStream:aStream State:[[RecognizerSharedState newRecognizerSharedStateWithRuleLen:2+1] retain]];
if ( self != nil ) {
/* start of actions-actionScope-init */
/* start of init */
/* AST genericParser.init */
[self setTreeAdaptor:[[CommonTreeAdaptor newTreeAdaptor] retain]];
}
return self;
}
- (void) dealloc
{
/* AST genericParser.dealloc */
[self setTreeAdaptor:nil];
[super dealloc];
}
/* ObjC start actions.(actionScope).methods */
/* ObjC end actions.(actionScope).methods */
/* ObjC start methods() */
/* AST genericParser.methods */
/* AST parserMethods */
- (id<TreeAdaptor>) getTreeAdaptor
{
return treeAdaptor;
}
- (void) setTreeAdaptor:(id<TreeAdaptor>)aTreeAdaptor
{
if (aTreeAdaptor != treeAdaptor) {
treeAdaptor = aTreeAdaptor;
}
}
/* ObjC end methods() */
/* ObjC start rules */
/*
* $ANTLR start rule
* /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g:8:1: rule : INT subrule -> ^( subrule INT ) ;
*/
- (TreeRewriteParser_rule_return *) rule
{
/* ruleScopeSetUp */
/* AST ruleDeclarations */
/* ruleDeclarations */
TreeRewriteParser_rule_return * retval = [TreeRewriteParser_rule_return newTreeRewriteParser_rule_return];
[retval setStart:[input LT:1]];
CommonTree *root_0 = nil;
@try {
/* AST ruleLabelDefs */
/* ruleLabelDefs entry */
CommonToken *INT1 = nil;TreeRewriteParser_subrule_return * subrule2 = nil ;
CommonTree *INT1_tree=nil;
RewriteRuleTokenStream *stream_INT =
[[RewriteRuleTokenStream newRewriteRuleTokenStream:treeAdaptor
description:@"token INT"] retain];
RewriteRuleSubtreeStream *stream_subrule =
[[RewriteRuleSubtreeStream newRewriteRuleSubtreeStream:treeAdaptor
description:@"rule subrule"] retain];
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g:8:5: ( INT subrule -> ^( subrule INT ) ) // ruleBlockSingleAlt
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g:8:7: INT subrule // alt
{
INT1=(CommonToken *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_rule26];
[stream_INT addElement:INT1];
/* ruleRef */
[self pushFollow:FOLLOW_subrule_in_rule28];
subrule2 = [self subrule];
[self popFollow];
[stream_subrule addElement:[subrule2 getTree]];
// AST REWRITE
// elements: subrule, INT
// token labels:
// rule labels: retval
// token list labels:
// rule list labels:
// wildcard labels:
retval.tree = root_0;
RewriteRuleSubtreeStream *stream_retval =
[[RewriteRuleSubtreeStream newRewriteRuleSubtreeStream:treeAdaptor
description:@"token retval" element:retval!=nil?[retval getTree]:nil] retain];
root_0 = (CommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
// 8:19: -> ^( subrule INT )
{
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g:8:22: ^( subrule INT )
{
CommonTree *root_1 = (CommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
root_1 = (CommonTree *)[treeAdaptor becomeRoot:(id<Tree>)[stream_subrule nextNode] old:root_1];
// TODO: args:
[treeAdaptor addChild:
[stream_INT nextNode]
toTree:root_1];
[treeAdaptor addChild:root_1 toTree:root_0];
}
}
retval.tree = root_0;
}
/* ASTParser ruleCleanUp */
/* AST ruleCleanUp */
/* token+rule list labels */
[retval setStop:[input LT:-1]];
[stream_INT release];
[stream_subrule release];
retval.tree = (CommonTree *)[treeAdaptor rulePostProcessing:root_0];
[treeAdaptor setTokenBoundaries:retval.tree From:retval.start To:retval.stopToken];
}
@catch (RecognitionException *re) {
[self reportError:re];
[self recover:input Exception:re];
/* ASTParser rule.setErrorReturnValue */
retval.tree = (CommonTree *)[treeAdaptor errorNode:input From:retval.start To:[input LT:-1] Exception:re];
}
@finally {
/* ruleScopeCleanUp */
}
return retval;
}
/* $ANTLR end rule */
/*
* $ANTLR start subrule
* /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g:11:1: subrule : INT ;
*/
- (TreeRewriteParser_subrule_return *) subrule
{
/* ruleScopeSetUp */
/* AST ruleDeclarations */
/* ruleDeclarations */
TreeRewriteParser_subrule_return * retval = [TreeRewriteParser_subrule_return newTreeRewriteParser_subrule_return];
[retval setStart:[input LT:1]];
CommonTree *root_0 = nil;
@try {
/* AST ruleLabelDefs */
/* ruleLabelDefs entry */
CommonToken *INT3 = nil;
CommonTree *INT3_tree=nil;
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g:12:5: ( INT ) // ruleBlockSingleAlt
// /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g:12:9: INT // alt
{
root_0 = (CommonTree *)[[[treeAdaptor class] newEmptyTree] retain];
/* ASTParser tokenRef */
INT3=(CommonToken *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_subrule53];
INT3_tree = /* ASTParser createNodeFromToken */
(CommonTree *)[[treeAdaptor create:INT3] retain]
;
[treeAdaptor addChild:INT3_tree toTree:root_0];
}
/* ASTParser ruleCleanUp */
/* AST ruleCleanUp */
/* token+rule list labels */
[retval setStop:[input LT:-1]];
retval.tree = (CommonTree *)[treeAdaptor rulePostProcessing:root_0];
[treeAdaptor setTokenBoundaries:retval.tree From:retval.start To:retval.stopToken];
}
@catch (RecognitionException *re) {
[self reportError:re];
[self recover:input Exception:re];
/* ASTParser rule.setErrorReturnValue */
retval.tree = (CommonTree *)[treeAdaptor errorNode:input From:retval.start To:[input LT:-1] Exception:re];
}
@finally {
/* ruleScopeCleanUp */
}
return retval;
}
/* $ANTLR end subrule */
/* ObjC end rules */
@end /* end of TreeRewriteParser implementation line 692 */