SQL 解析器与 Flex 规范详解
1. SQL 解析器代码与 Makefile
首先,我们来看 SQL 解析器的主函数代码:
main(int ac, char **av)
{
extern FILE *yyin;
if(ac > 1 && !strcmp(av[1], "-d")) {
yydebug = 1; ac--; av++;
}
if(ac > 1 && (yyin = fopen(av[1], "r")) == NULL) {
perror(av[1]);
exit(1);
}
if(!yyparse())
printf("SQL parse worked\n");
else
printf("SQL parse failed\n");
} /* main */
此代码的功能是解析 SQL 语句,具体步骤如下:
1. 检查命令行参数,若存在 -d 选项,则开启调试模式。
2. 尝试打开指定文件作为输入源,若打开失败则输出错误信息并退出。
3. 调用 yyparse() 函数进行解析,根据解析结果输出相应信息。
接下来是 SQL 解析器的 Makefile:
# Makefile for pmysql
CC = cc -g
LEX = flex
YACC = bison
CFLAGS = -DY
超级会员免费看
订阅专栏 解锁全文
5

被折叠的 条评论
为什么被折叠?



