Reputation: 11
I'm trying to run the example on: http://jflex.de/manual.html#Example I've copied the example and only changed the file/class name.
Running jflex seems to work fine.
$ jflex -v -d output/ grammer/scanner.flex
Reading "grammer/scanner.flex"
Constructing NFA : 148 states in NFA
Converting NFA to DFA :
.........................................
45 states before minimization, 26 states in minimized DFA
As a next step I try to compile the output. No matter what I do, I get these errors.
$ javac -cp .*:dependancies/java-cup-11b.jar output/scanner.java
output/scanner.java:788: error: cannot find symbol
{ return symbol(sym.IDENTIFIER);
^
symbol: variable IDENTIFIER
location: interface sym
output/scanner.java:793: error: cannot find symbol
{ return symbol(sym.INTEGER_LITERAL);
^
symbol: variable INTEGER_LITERAL
location: interface sym
output/scanner.java:803: error: cannot find symbol
{ return symbol(sym.EQ);
^
symbol: variable EQ
location: interface sym
output/scanner.java:808: error: cannot find symbol
{ return symbol(sym.PLUS);
^
symbol: variable PLUS
location: interface sym
output/scanner.java:819: error: cannot find symbol
return symbol(sym.STRING_LITERAL,
^
symbol: variable STRING_LITERAL
location: interface sym
output/scanner.java:830: error: cannot find symbol
{ return symbol(sym.EQEQ);
^
symbol: variable EQEQ
location: interface sym
6 errors
I'm I forgetting something?
http://czt.sourceforge.net/dev/java-cup-runtime/apidocs/java_cup/runtime/Symbol.html
Upvotes: 1
Views: 2149
Reputation: 26994
With jflex, you are generating the lexer.
You also need to generate the parser with cup and add it to your classpath.
Rather than trying to compile things by hand, I recommend you use
jflex-maven-plugin
and cup-maven-plugin
.
See examples/simple/pom.xml
jflex()
and cup()
rules.
See examples/simple/BUILD
PR 452 is a proposal to move this particular example (currently in the regression testsuite) into the examples directory.
Upvotes: 1