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 "ANTLRLexerState.h" 28 29 30 @implementation ANTLRLexerState 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 ANTLRLexerState" ); 56 #endif 57 [self setText:nil]; 58 [self setToken:nil]; 59 [super dealloc]; 60 } 61 62 - (id<ANTLRToken>) getToken 63 { 64 return token; 65 } 66 67 - (void) setToken:(id<ANTLRToken>) 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