如果你看到我的另一个问题,你现在会更好地实现我的目标。看看: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)。
在语法输入文件上运行 javacc 以生成一堆实现解析器和词法分析器(或令牌
管理器)的 Java 文件:javacc Simple1.jj
现在编译生成的 Java 程序:
javac *.java
解析器现在可以使用了。要运行解析器,请键入:
java简单1
我的尝试:
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 的第一次测试中遇到类似的简单错误?
我该如何解决这个问题并继续我的讲座?