Xcode4 Lex和yaccxcode 4

Xcode4 Lex和yaccxcode 4,xcode4,yacc,lex,Xcode4,Yacc,Lex,如何使用Xcode 4设置lex和Yacc?要做到这一点,我应该在构建规则中编写什么自定义脚本 我有一个lex文件abc.l和一个yacc文件cba.y,它们与其他项目源文件放在同一个目录中。 parser.ymm %{ #include<iostream> #include<stdio.h> #include "querystructure.h" using namespace std; static int col_id = 0

如何使用Xcode 4设置lex和Yacc?要做到这一点,我应该在构建规则中编写什么自定义脚本

我有一个lex文件abc.l和一个yacc文件cba.y,它们与其他项目源文件放在同一个目录中。 parser.ymm

%{
    #include<iostream>
    #include<stdio.h>
    #include "querystructure.h"
    using namespace std;
    static int col_id = 0;


extern void yyerror (char* message);
extern int yylex ();
%}
%{
#包括
#包括
#包括“querystructure.h”
使用名称空间std;
静态int col_id=0;
外部无效错误(字符*消息);
extern-int-yylex();
%}
lexer.l/lexer.lm

%{
    #include <stdio.h>
    #include "y.tab.h"

%}
%{
#包括
#包括“y.tab.h”
%}

听起来您只需将
*.y
文件重命名为
*.ym


我没有尝试过这个,但是链接的帖子表明XCode内置了足够的智能,以便“自动”处理解析器生成器。

没有包含lexer…我得到以下错误:y.tab.c:1327:16:错误:使用未声明的标识符“yylex”@JuliusCante这完全是瞎猜,但请尝试将您的
*.l
文件重命名为
*.lm
,看看它是否有效。仍然会出现以下错误:架构x86_64的未定义符号:“yylex()”,引用自y.tab中的:yyparse()。o ld:symbol(s)未找到架构x86的_64@JuliusCanute这可能与语法/词法文件有关。你能用这两个问题的顶部来更新这个问题吗?唯一感兴趣的部分是
%{
}%
@juliuscante我的时区已经很晚了,我明天才能回复。查看中的答案,看看您是否在某处缺少
extern“C”
声明。