加载中…
  
博文
(2011-05-07 19:15)
标签:

premature

eof

lex

flex

杂谈

分类: Computing
最近在Windows下写了一个后缀为l的文件意欲用flex来编译,但是出现未知错误'premature EOF'。上网上没有查到答案,折腾了半天,原来是%{ ... %}写成了%{ }%了。

另外,定义了一个正则表达式Identifier
%{
%}
letter [A-Za-z]
digit [0-9]
Identifier {letter}({digit} | {letter})*
%%
{Identifier} {<语义定义>}
%%
int main()...

出现的情况是不能识别包含<语义定义>那一行,查找半天终于找到原因,是正则定义的时候不能在花括号出现空格,修改Identifier定义为
Identifier {letter}({digit}|{letter})*
即可。

另外,用C语言编写,文件最后空一行可消去文件末尾希望出现newline的警告。

加油。好多bug。
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有