LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1974|回复: 4

求C语言词法分析的lex源代碼

[复制链接]
发表于 2005-3-22 00:38:30 | 显示全部楼层 |阅读模式
就是用来生成C语言词法分析lex.yy.c文件的 lex源码。

即那个格式形如:

  1. %{
  2. #include        <stdlib.h>
  3. #include        <string.h>

  4. #define        LF        printf("\n")
  5. %}

  6. delim                        [ \t\n]
  7. ws                        {delim}+
  8. digit                        [0-9]
  9. number                {digit}+(\.{digit}+)?([Ee][+\-]?{digit}+)?
  10. letter                        [A-Za-z]
  11. id                        [letter]({letter}|{digit})*
  12. operator                ["+-x/="]
  13. string                        "([^"\\]*(\\.)*)*"


  14. %%
  15. {ws}                        {}
  16. {operator}                {ECHO;LF;}
  17. {number}                {ECHO;LF;}
  18. {id}                        {ECHO;LF;}
  19. {string}                {ECHO;LF;}


  20. %%
  21. int yywrap(void)
  22. {       
  23.        
  24.         printf("\n*** STOPPED! ***\n");
  25.         return 1;
  26. }
  27. int main(int argc, char *argv[])
  28. {
  29.         yyin=fopen(argv[1],"r");
  30.         yylex();
  31.         fclose(yyin);
  32. }

复制代码


的东东。

不胜感谢!
 楼主| 发表于 2005-3-22 01:14:22 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2005-3-22 19:46:37 | 显示全部楼层
lex的源代码在网上可以找到呀,用google搜索。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-22 20:53:38 | 显示全部楼层
不是lex这软件的源码。
而是用来生成词法分析器源码的lex源码。
貌似一直搜不到

只有生成词法分析器的C源码,那个对我没啥用处;

想学习lex里头对C词法分析的正则表达式的说
回复 支持 反对

使用道具 举报

发表于 2005-3-23 09:17:53 | 显示全部楼层
好象有些讲编译原理的书上有一些简单的例子。
大部分网上的代码,都是用C实现的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表