Xcode4 Lex和yaccxcode 4
如何使用Xcode 4设置lex和Yacc?要做到这一点,我应该在构建规则中编写什么自定义脚本 我有一个lex文件abc.l和一个yacc文件cba.y,它们与其他项目源文件放在同一个目录中。 parser.ymmXcode4 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
%{
#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”
声明。