JFLEX:文件宏的意外结束



这是我的第一个JFLEX程序,所以我不明白为什么会遇到这些错误。当我运行代码时,它会给我消息"文件宏的意外结束",并且没有指定错误已打开的行。另外,在评论了%eof代码(即第18至24行(之后,它给了我一个错误的"意外符号",并且指向我第一个正则表达式的开始。有人可以告诉我为什么我会遇到这些问题吗?

import java.io.*;
import java.util.*;
%%
%class test
%line
%column

%{
    PrintWriter pw = new PrintWriter(new File(args[0]));
    int ids = 0;
    int nums = 0;
    int comments = 0;
    int literals = 0;
%}
%eof{
    pw.println("number of identifiers = " + ids);
    pw.println("number of numbers = " + nums);
    pw.println("number of comments = " + comments);
    pw.println("number of string literals = " + literals);
    pw.close();
eof%}
[A-Za-z_][A-Z-a-z_0-9]*     {ids++;
                             System.out.print(ids);}
(n|s|t)[0-9](n|s|t)   {nums++;
                             System.out.print(nums);}
/*.*/                     {comments++;
                             System.out.print(comments);}
p{Punct}                   {literals++;
                             System.out.print(literals);}

                             System.out.println(literals);}

您需要将%符号放在文件宏的结尾标签的eof之前。

%eof{
    /* Code to put at the end */
%eof}

相关内容

  • 没有找到相关文章

最新更新