6

我编写了一个非常简单的文件,其规范如下所示来标记单词:

%%
%class Lexer
%unicode

WORD = [^\r\n\t ]

%%
{WORD}  {System.out.println("Word is:"+yytext());}

.       {System.out.println("Bad character: "+ yytext());}

以下是我运行的命令:

jflex hindi.jlex
javac Lexer.java

我收到以下错误:

Lexer.java:442: cannot find symbol
symbol  : class Yytoken
location: class Lexer
  public Yytoken yylex() throws java.io.IOException {
     ^
1 error

任何帮助表示赞赏。

另外,我检查了Lexer.java文件,其中没有任何main功能。这就是这个错误的原因。

4

2 回答 2

4

如果要独立检查词法分析器(没有解析器),请将以下内容添加到用户代码部分:

%standalone
于 2013-04-02T21:36:46.393 回答
1

那些使用 byaccj 并收到此错误的人应该添加%byaccj一行而不是%standalone在该%class Lexer行下方

于 2015-04-01T13:49:53.420 回答