gpt4 book ai didi

java - JFlex:文件宏意外结束

转载 作者:太空宇宙 更新时间:2023-11-04 10:42:05 24 4
gpt4 key购买 nike

这是我的第一个 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}

关于java - JFlex:文件宏意外结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48858142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com