1// [The "BSD licence"] 2// Copyright (c) 2007 Kay Roepke 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 "LexerState.h" 28 29 30@implementation LexerState 31 32- (id) init 33{ 34 self = [super init]; 35 if (self) { 36 [self reset]; 37 } 38 return self; 39} 40 41- (void) reset 42{ 43 [self setToken:nil]; 44 type = 0; 45 channel = 0; 46 tokenStartLine = 0; 47 tokenStartCharPositionInLine = 0; 48 tokenStartCharIndex = -1; 49 [self setText:nil]; 50} 51 52- (void) dealloc 53{ 54#ifdef DEBUG_DEALLOC 55 NSLog( @"called dealloc in LexerState" ); 56#endif 57 [self setText:nil]; 58 [self setToken:nil]; 59 [super dealloc]; 60} 61 62- (id<Token>) getToken 63{ 64 return token; 65} 66 67- (void) setToken:(id<Token>) theToken 68{ 69 if (theToken != token) { 70 if ( token ) [token release]; 71 token = [theToken retain]; 72 } 73} 74 75 76- (NSUInteger) getTokenType 77{ 78 return type; 79} 80 81- (void) setTokenType:(NSUInteger) theTokenType 82{ 83 type = theTokenType; 84} 85 86- (NSUInteger)channel 87{ 88 return channel; 89} 90 91- (void) setChannel:(NSUInteger) theChannel 92{ 93 channel = theChannel; 94} 95 96- (NSUInteger) getTokenStartLine 97{ 98 return tokenStartLine; 99} 100 101- (void) setTokenStartLine:(NSUInteger) theTokenStartLine 102{ 103 tokenStartLine = theTokenStartLine; 104} 105 106- (unsigned int) getTokenCharPositionInLine 107{ 108 return tokenStartCharPositionInLine; 109} 110 111- (void) setTokenCharPositionInLine:(unsigned int) theCharPosition 112{ 113 tokenStartCharPositionInLine = theCharPosition; 114} 115 116- (int) getTokenStartCharIndex 117{ 118 return tokenStartCharIndex; 119} 120 121- (void) setTokenStartCharIndex:(int) theTokenStartCharIndex 122{ 123 tokenStartCharIndex = theTokenStartCharIndex; 124} 125 126- (NSString *) text 127{ 128 return text; 129} 130 131- (void) setText:(NSString *) theText 132{ 133 if (text != theText) { 134 if ( text ) [text release]; 135 text = [theText retain]; 136 } 137} 138 139@end 140