我正在尝试使用YACC和xcode,这是本机支持的,为此我发现这个样本工作得很好.我的想法是建立自己的语法,所以我开始尝试项目,看它是否会支持我需要的东西.因此,我创建了以下界面:
.H
#import <Foundation/Foundation.h>
@interface HYPLangNodeNP : NSObject
@end
Run Code Online (Sandbox Code Playgroud)
.M
#import "HYPLangNodeNP.h"
@implementation HYPLangNodeNP
@end
Run Code Online (Sandbox Code Playgroud)
是的,这只是一个空实现.然后我只对语法做了两处修改:
1)添加HYPLangNodeNP导入
%{
#import "MessageBlocks.h"
#import "HYPLangNodeNP.h"
int yylex(void);
void yyerror(char *s);
%}
Run Code Online (Sandbox Code Playgroud)
2)将HYPLangNodeNP添加到类型%union
%union {
float value;
NSString *identifier;
HYPLangNodeNP *node;
}
Run Code Online (Sandbox Code Playgroud)
该项目无法编译Unknown type name 'HYPLangNodeNP'.有谁知道如何解决?
编辑:
我不知道YACC版本,但它是Xcode 6.3附带的任何版本.以下是我得到的日志:
CompileC/Users/RafaelSoares/Library/Developer/Xcode/DerivedData/Parser_Test-ahryrrrgjyqtbhenhxphagqdgppf/Build/Intermediates/Parser\Test.build/Debug-iphonesimulator/Parser\Test.build/Objects-normal/i386/ViewController.o Parser\Test /ViewController.m正常i386 objective -c com.apple.compilers.llvm.clang.1_0.compiler cd"/ Users/RafaelSoares/Google Drive/Hype/ParserTest-master"export LANG = en_US.US-ASCII export PATH =" /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin :/ sbin"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective -c -arch i386 -fmessage-length = 0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit = 0 -std …