⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 antlrcommontoken.m

📁 antlr最新版本V3源代码
💻 M
字号:
// [The "BSD licence"]// Copyright (c) 2006-2007 Kay Roepke// All rights reserved.//// Redistribution and use in source and binary forms, with or without// modification, are permitted provided that the following conditions// are met:// 1. Redistributions of source code must retain the above copyright//    notice, this list of conditions and the following disclaimer.// 2. Redistributions in binary form must reproduce the above copyright//    notice, this list of conditions and the following disclaimer in the//    documentation and/or other materials provided with the distribution.// 3. The name of the author may not be used to endorse or promote products//    derived from this software without specific prior written permission.//// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#import "ANTLRCommonToken.h"@implementation ANTLRCommonToken// designated initializer- (ANTLRCommonToken *) initWithInput:(id<ANTLRCharStream>)anInput tokenType:(int)aTType channel:(int)aChannel start:(int)theStart stop:(int)theStop{	if (nil != (self = [super init])) {		[self setInput:anInput];		type = aTType;		channel = aChannel;		start = theStart;		stop = theStop;	}	return self;}- (ANTLRCommonToken *) initWithToken:(ANTLRCommonToken *)aToken{	return [aToken copy];}// create a copy, including the text if available// the input stream is *not* copied!- (id) copyWithZone:(NSZone *)theZone{	ANTLRCommonToken *copy = [super copyWithZone:theZone];	if (copy) {		[copy setChannel:channel];		if (text) {			NSString *copyOfText = [text copyWithZone:theZone];			[copy setText:copyOfText];			[copyOfText release];		}		[copy setStart:start];		[copy setStop:stop];		[copy setIndex:index];		[copy setLine:line];		[copy setCharPositionInLine:charPositionInLine];		[copy setInput:input];		// not a copy, but a reference to the original input stream!	}	return copy;}// inherited from ANTLRToken//---------------------------------------------------------- //  text //---------------------------------------------------------- - (NSString *) text{	if (text != nil) {		return text;	}	if (input == nil) {		return nil;	}	return [input substringWithRange:NSMakeRange(start,stop-start)];}- (void) setText: (NSString *) aText{    if (text != aText) {        [aText retain];        [text release];        text = aText;    }}//---------------------------------------------------------- //  type //---------------------------------------------------------- - (unsigned int) type{    return type;}- (void) setType: (unsigned int) aType{    type = aType;}//---------------------------------------------------------- //  line //---------------------------------------------------------- - (unsigned int) line{    return line;}- (void) setLine: (unsigned int) aLine{    line = aLine;}//---------------------------------------------------------- //  charPositionInLine //---------------------------------------------------------- - (unsigned int) charPositionInLine{    return charPositionInLine;}- (void) setCharPositionInLine: (unsigned int) aCharPositionInLine{    charPositionInLine = aCharPositionInLine;}//---------------------------------------------------------- //  channel //---------------------------------------------------------- - (unsigned int) channel{    return channel;}- (void) setChannel: (unsigned int) aChannel{    channel = aChannel;}// end inherited//---------------------------------------------------------- //  input //---------------------------------------------------------- - (id<ANTLRCharStream>) input{    return input; }- (void) setInput: (id<ANTLRCharStream>) anInput{    if (input != anInput) {        [anInput retain];        [input release];        input = anInput;    }}//---------------------------------------------------------- //  start //---------------------------------------------------------- - (unsigned int) start{    return start;}- (void) setStart: (unsigned int) aStart{    start = aStart;}//---------------------------------------------------------- //  stop //---------------------------------------------------------- - (unsigned int) stop{    return stop;}- (void) setStop: (unsigned int) aStop{    stop = aStop;}//---------------------------------------------------------- //  index //---------------------------------------------------------- - (unsigned int) index{    return index;}- (void) setIndex: (unsigned int) anIndex{    index = anIndex;}// provide a textual representation for debugging- (NSString *) description{	NSString *channelString = [[NSString alloc] initWithFormat:@"channel=%d", channel];	NSMutableString *txtString;	if ([self text] != nil) {		txtString = [NSMutableString stringWithString:[self text]];		[txtString replaceOccurrencesOfString:@"\n" withString:@"\\\n" options:NSAnchoredSearch range:NSMakeRange(0, [txtString length])];		[txtString replaceOccurrencesOfString:@"\r" withString:@"\\\r" options:NSAnchoredSearch range:NSMakeRange(0, [txtString length])];		[txtString replaceOccurrencesOfString:@"\t" withString:@"\\\t" options:NSAnchoredSearch range:NSMakeRange(0, [txtString length])];	} else {		txtString = [NSMutableString stringWithString:@"<no text>"];	}	return [@"[@" stringByAppendingFormat:@"%d, %d, %d=%@,<%d>,%@,%d:%d]", index, start, stop, txtString, type, channelString, line, charPositionInLine];}@end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -