1 // [The "BSD licence"] 2 // Copyright (c) 2006-2007 Kay Roepke 2010 Alan Condit 3 // All rights reserved. 4 // 5 // Redistribution and use in source and binary forms, with or without 6 // modification, are permitted provided that the following conditions 7 // are met: 8 // 1. Redistributions of source code must retain the above copyright 9 // notice, this list of conditions and the following disclaimer. 10 // 2. Redistributions in binary form must reproduce the above copyright 11 // notice, this list of conditions and the following disclaimer in the 12 // documentation and/or other materials provided with the distribution. 13 // 3. The name of the author may not be used to endorse or promote products 14 // derived from this software without specific prior written permission. 15 // 16 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17 // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 18 // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 19 // IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 20 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 21 // NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 25 // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 27 #import "ANTLRUnbufferedCommonTreeNodeStreamState.h" 28 29 30 @implementation ANTLRUnbufferedCommonTreeNodeStreamState 31 32 - (id) init 33 { 34 if ((self = [super init]) != nil) { 35 lookahead = [[NSMutableArray alloc] init]; 36 } 37 return self; 38 } 39 40 - (void) dealloc 41 { 42 [self setLookahead:nil]; 43 [self setCurrentNode:nil]; 44 [self setPreviousNode:nil]; 45 [super dealloc]; 46 } 47 48 - (ANTLRCommonTree *) currentNode 49 { 50 return currentNode; 51 } 52 53 - (void) setCurrentNode: (ANTLRCommonTree *) aCurrentNode 54 { 55 if (currentNode != aCurrentNode) { 56 [aCurrentNode retain]; 57 [currentNode release]; 58 currentNode = aCurrentNode; 59 } 60 } 61 62 - (ANTLRCommonTree *) previousNode 63 { 64 return previousNode; 65 } 66 67 - (void) setPreviousNode: (ANTLRCommonTree *) aPreviousNode 68 { 69 if (previousNode != aPreviousNode) { 70 [aPreviousNode retain]; 71 [previousNode release]; 72 previousNode = aPreviousNode; 73 } 74 } 75 76 - (NSInteger) currentChildIndex 77 { 78 return currentChildIndex; 79 } 80 81 - (void) setCurrentChildIndex: (NSInteger) aCurrentChildIndex 82 { 83 currentChildIndex = aCurrentChildIndex; 84 } 85 86 - (NSInteger) absoluteNodeIndex 87 { 88 return absoluteNodeIndex; 89 } 90 91 - (void) setAbsoluteNodeIndex: (NSInteger) anAbsoluteNodeIndex 92 { 93 absoluteNodeIndex = anAbsoluteNodeIndex; 94 } 95 96 - (NSUInteger) nodeStackSize 97 { 98 return nodeStackSize; 99 } 100 101 - (void) setNodeStackSize: (NSUInteger) aNodeStackSize 102 { 103 nodeStackSize = aNodeStackSize; 104 } 105 106 - (NSUInteger) indexStackSize 107 { 108 return indexStackSize; 109 } 110 111 - (void) setIndexStackSize: (NSUInteger) anIndexStackSize 112 { 113 indexStackSize = anIndexStackSize; 114 } 115 116 - (NSMutableArray *) lookahead 117 { 118 return lookahead; 119 } 120 121 - (void) setLookahead: (NSMutableArray *) aLookahead 122 { 123 if (lookahead != aLookahead) { 124 [aLookahead retain]; 125 [lookahead release]; 126 lookahead = aLookahead; 127 } 128 } 129 130 - (void) addToLookahead: (id)lookaheadObject 131 { 132 [[self lookahead] addObject: lookaheadObject]; 133 } 134 - (void) removeFromLookahead: (id)lookaheadObject 135 { 136 [[self lookahead] removeObject: lookaheadObject]; 137 } 138 139 140 @end 141