javacc测试Simple1.jj

时间:2013-10-23 22:17:17

标签: javacc

如果你看到我的另一个问题,你现在会更好地实现我的目标。请看一下:https://stackoverflow.com/questions/19510039/from-regex-to-parser-generators

当我想成为一个好孩子时,我正在阅读自述文件(见https://java.net/projects/javacc/sources/svn/show/tags/release_60/examples/SimpleExamples?rev=555)。

  
      
  1. 在语法输入文件上运行javacc以生成一堆实现解析器和词法分析器(或令牌)的Java文件   管理器):

         

    javacc Simple1.jj

  2.   
  3. 现在编译生成的Java程序:

         

    javac * .java

  4.   
  5. 解析器现在可以使用了。要运行解析器,请键入:

         

    java Simple1

  6.   

我的尝试:

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

我的java版本:

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)

我确信“这些”家伙知道他们在做什么,我确定我做错了什么,但是什么?在javacc的第一次测试中得到一个简单的错误?

我如何解决这个问题并继续我的演讲?

2 个答案:

答案 0 :(得分:1)

我建议现在使用5.0版。版本6中有很多变化,这些变化带来了一些错误。应该很快就会对版本6进行更新。 https://java.net/projects/javacc/downloads

答案 1 :(得分:-1)

您是否会将代码放入查看或完整调用中。我认为,这是一个代码错误,或者你称之为糟糕的.java存档。例如:

我有:Mytokens.jj和javaCode.java好吗?好,你需要说:

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

我给你我的* .bat进行测试。您创建一个新的txt并编写它:

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

如果您在javacc / bin和练习目录中有副本,那么当您双击它时,这将为您进行测试。