我最近尝试将ParseKit集成到我的iPhone应用程序中。我下载了release-1.5-tag,并将其集成到我的项目(XCode 4.4,iOS 5.1)中,它的构建没有问题。当我运行一个简单的例子来尝试解析一些Javascript(使用与ParseKit本身捆绑在一起的语法)时:
NSString *path = [[NSBundle bundleForClass:[self class]] pathForResource:@"javascript" ofType:@"grammar"];
NSString *g = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
PKParser *parser = [[PKParserFactory factory] parserFromGrammar:g assembler:self];
NSString *s = @"var x = 0;";
[parser parse:s];
我的应用程序挂起了一点,然后在看起来成千上万次调用PKParser之后得到一个EXC_BAD_ACCESS:matchAndAssemble和PKSequence:allMatchesFor。在所有这些调用结束时,它最终调用PKTerminal:matchOneAssembly,然后PKCaseInsensitiveLiteral:qualifies,然后调用EXC_BAD_ACCESS。我做错了吗?