user2897090
user2897090

Reputation: 41

javacc testing Simple1.jj

If you see my other question, you will now better my goals. Take a look at: https://stackoverflow.com/questions/19510039/from-regex-to-parser-generators .

As I'm trying to be a good boy, I'm reading the README (see https://java.net/projects/javacc/sources/svn/show/tags/release_60/examples/SimpleExamples?rev=555 ).

  1. Run javacc on the grammar input file to generate a bunch of Java files that implement the parser and lexical analyzer (or token
    manager):

    javacc Simple1.jj

  2. Now compile the resulting Java programs:

    javac *.java

  3. The parser is now ready to use. To run the parser, type:

    java Simple1

My try:

D:\tests\javacc\simple1>javacc ..\Simple1.jj
Java Compiler Compiler Version 6.0_beta (Parser Generator)
(type "javacc" with no arguments for help)
Reading from file ..\Simple1.jj . . .
File "TokenMgrError.java" does not exist.  Will create one.
File "ParseException.java" does not exist.  Will create one.
File "Token.java" does not exist.  Will create one.
File "SimpleCharStream.java" does not exist.  Will create one.
Parser generated successfully.

D:\tests\javacc\simple1>javac *.java
SimpleCharStream.java:474: error: non-static variable this cannot be referenced from a static context
  static void setTrackLineColumn(boolean trackLineColumn) { this.trackLineColumn = trackLineColumn; }
                                                            ^
1 error

My java version:

java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) Client VM (build 24.45-b08, mixed mode, sharing)

I'm sure that "these" guys known what they are doing, I'm sure I did something wrong, but what? Getting a simple error like that in the first test with javacc?

How can I fix that and continue my lecture?

Upvotes: 1

Views: 2138

Answers (2)

David
David

Reputation: 23

Will you put the code to look it or your complete call. I think, that it´s a code error or that you call a bad .java archive. For example:

I have: Mytokens.jj and javaCode.java ok? Good, you need said:

javacc Mytokens.jj
javac javaCode.java
java javaCode <test1.txt>

I give you my *.bat for the test. You create a new txt and write it:

CALL javacc nameJJ.jj
@pause
CALL javac NameJava.java
@pause
java NameJava <prueba1> salida.txt
type salida.txt
@pause

This do the test for you when you do a double-click on it if you have a copy in your javacc/bin and your practice directories.

Upvotes: 0

Theodore Norvell
Theodore Norvell

Reputation: 16241

I suggest using version 5.0 for now. There are a lot of changes in version 6 and these came along with some bugs. There should be an update to version 6 soon. https://java.net/projects/javacc/downloads

Upvotes: 1

Related Questions