1
votes

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

1

1 Answers

1
votes

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

  • either Maven with the jflex-maven-plugin and cup-maven-plugin. See examples/simple/pom.xml
  • or bazel and the 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.