【问题标题】:JFlex - how to test the scannerJFlex - 如何测试扫描仪
【发布时间】:2014-01-24 22:44:36
【问题描述】:

我刚刚开始学习 JFlex。我正在研究一个官方的 Jflex 示例,它是 Java 语言的扫描器。在自述文件中它说:

The scanner (without parser attached) can be test with:
java TestLexer <inputfiles>

但是当我在 cmd 中尝试此操作时,我收到一条错误消息,说“找不到或加载主类 TestLexer”。有人知道为什么吗?提前谢谢你。

【问题讨论】:

    标签: jflex


    【解决方案1】:

    为了测试 Java 的词法分析器,JFlex 依赖于 CUP parser generator,你安装了吗?

    在能够运行词法分析器之前,需要执行几个命令:

    jflex unicode.flex
    jflex java.flex
    java java_cup.Main -interface < java12.cup
    javac JavaParser.java TestLexer.java
    

    对于第三个命令,您需要在类路径中的某处添加java-cup-11a.jar

    只有这样你才能测试解析器:

    java JavaParser <inputfiles>
    

    或扫描仪:

    java TestLexer <inputfiles>
    

    【讨论】:

    • 我又试了一次,但是在执行第三行的时候,还是出现'Could not find or load main class java_cup.Main.
    • 试试java -cp path_to_your_java-cup.jar java_cup.Main -interface &lt; java12.cup会更好吗?
    • 不,我得到“系统找不到指定的文件”。但是我已经将 java cup 文件的目录添加到 PATH 变量中。
    • java-cup jar 文件的名称是什么?对于 jar 文件,您需要将目录添加到 CLASSPATH 变量,而不是 PATH,然后您可以省略 -cp parameter
    猜你喜欢
    • 1970-01-01
    • 2016-03-12
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多