• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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