Question

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.

Was it helpful?

Solution

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

%standalone

OTHER TIPS

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top