Domanda

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.

È stato utile?

Soluzione

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

%standalone

Altri suggerimenti

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top