antlrcommontreeadaptor.m
来自「antlr最新版本V3源代码」· M 代码 · 共 72 行
M
72 行
// [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 "ANTLRCommonTreeAdaptor.h"@implementation ANTLRCommonTreeAdaptor- (id<ANTLRTree>) newTreeWithToken:(ANTLRToken *) payload{ // I simply don't get the warning here...gcc says: // warning: class 'ANTLRCommonToken' does not implement the 'ANTLRTree' protocol // IMHO that's FUBAR...#warning WTF is this warning about? return [[ANTLRCommonTree alloc] initWithToken:(ANTLRCommonToken *)payload];}- (ANTLRToken *) newTokenWithToken:(ANTLRToken *)fromToken{ return [[ANTLRCommonToken alloc] initWithToken:(ANTLRCommonToken *)fromToken];}- (ANTLRToken *) newTokenWithTokenType:(int)tokenType text:(NSString *)tokenText{ ANTLRCommonToken *newToken = [[ANTLRCommonToken alloc] init]; [newToken setType:tokenType]; [newToken setText:tokenText]; return newToken;}- (void) setBoundariesForTree:(id<ANTLRTree>)aTree fromToken:(ANTLRToken *)startToken toToken:(ANTLRToken *)stopToken{ ANTLRCommonTree *tmpTree = (ANTLRCommonTree *)aTree; [tmpTree setStartIndex:[startToken tokenIndex]]; [tmpTree setStopIndex:[stopToken tokenIndex]]; }- (int) tokenStartIndexForTree:(id<ANTLRTree>)aTree{ return [(ANTLRCommonTree *)aTree startIndex];}- (int) tokenStopIndexForTree:(id<ANTLRTree>)aTree{ return [(ANTLRCommonTree *)aTree stopIndex];}@end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?