日期:2014-05-16  浏览次数:20838 次

Lex/YACC 高手请进,求分析C语言语法例子
请问用Lex/YACC分析C语言语法,方便吗? 有没有实际例子
提供一个C/C++程序文件,可以分析出
1:有多少全局变量,每个全局变量定义的代码行?
2:有多少函数,每个函数的代码行
3:提出全局变量和函数的声明,自动生成一个头文件。

------解决方案--------------------
这个是词法分析。scanner.l
楼主的需求比如全局变量,局部变量,函数声明,都需要用到语法分析。
需要一个parser.y

建议,
1. 下载一个CSCOPE的源码,参考里面的语法分析的部分。
2. 下载C89/C99标准整理C语言的词法和语法。

探讨

以下的代码,function3a和function4可以打印出来,其它打印不出来。
我理解,函数必须现有一个函数名,然后是一对圆括号,再是一对大括号。函数名以字母开头,可以是字母和数字。函数名,圆括号,大括号中间可以有任意字符,换行符。结果function4b, function6都打印不出来。有高手的话,帮忙看看.



%{
#include "stdio.h"
%}


……