摘要:
遵循最长匹配规则C风格注释:1 cmark \/\*([^\*]|(\*)*[^\*/])*\*\/2 cmark \/\*([^\*]|(\*)+[^\/])*\*\/3 cmark \/\*([^\*]|(\*)+[^/])*\*\/1 不包含*或则有0到多个*并且后面没有*和/。(这样中间就不会匹配掉注释结尾的*/)2 不包含*或则有1到多个*并且后面没有/。(这样当遇到结尾*/时,因为前面是一个*,然后跟着一个/ -- 不满足匹配)匹配空行:null_line ^[ \t]*[ \n]匹配单词:words [^ \t\n]+chars [A-Za-z\_\'\.\"] 阅读全文
摘要:
lex可以辅助生成词法分析程序,我们要做的仅仅是写好相应的正则表达式。简介:http://www.ibm.com/developerworks/cn/linux/sdk/lex/一个lex source file由三部分组成。%{C变量、函数声明%}lex标记声明%%lex的模式匹配规则%%C代码下面是一个统计字数与行数的小程序%{int word_cnt=0;int rows = 0;%}words [^ \t\n]+%%{words} word_cnt++;.\n rows++;%%void main(){ yylex(); printf("%d words, %d line\n 阅读全文