Вопрос

I have written a very simple file with specification shown below to to tokenize words:

%%
%class Lexer
%unicode

WORD = [^\r\n\t ]

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

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

The following are the commands I run:

jflex hindi.jlex
javac Lexer.java

I get the following error:

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

Any help appreciated.

On a additional note I checked the Lexer.java file and there was no main function in it. Is that the reason for this error.

Это было полезно?

Решение

If you want to check the lexer standalone(without a parser) then add the following to the user code section:

%standalone

Другие советы

Those working with byaccj and getting this error should add a %byaccj line instead of %standalone below the %class Lexer line

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top