java - Netbeans 和 EOF

标签 java netbeans antlr antlr3 eof

这里是 Java、ANTLR 和 Netbeans 新手。

我已经安装了 jdk 和 netbeans。我在 netbeans 6.8 上开始了一个新项目,并将 antlr-3.2.jar 添加为一个库。我还使用 AntlrWorks 创建了一个词法分析器和解析器类。这些类被命名为 ExprParser.java 和 ExprLexer.java。我将它们复制到名为 path-to-netbeans-project/src/parsers 的目录中。

我有一个主文件:

package javaapplication2;

import org.antlr.runtime.*;
import parsers.*;

public class Main {

    public static void main(String[] args) throws Exception{

        ANTLRInputStream input = new ANTLRInputStream(System.in);
        ExprLexer lexer = new ExprLexer(input);
        CommonTokenStream tokens = new CommonTokenStream(lexer);
        ExprParser parser = new ExprParser(tokens);
        parser.prog();

    }

}

应用程序构建良好。我正在阅读的书说我应该运行该程序并输入一些内容,然后按 Ctrl+Z(我在 Windows 上)将 EOF 发送到控制台。问题是当我在 netbeans 控制台中按 Ctrl+z 时没有任何反应。当我从命令行运行时,ctrl+z 工作正常。

这可能是太多的信息,但我无法弄明白。对不起。一次学习 3 种新技术可能不是一个好主意。

最佳答案

代替:

ANTLRInputStream input = new ANTLRInputStream(System.in);

你可以这样做:

ANTLRStringStream input = new ANTLRStringStream(args[0]);

其中 args[0] 是第一个命令行参数。

或者只是:

ANTLRStringStream input = new ANTLRStringStream("your source here");

关于java - Netbeans 和 EOF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3029256/

相关文章:

java - java中hashcode方法的目的是什么?

java - 400(错误请求)错误 - 使用 JQuery AJAX 的 Spring-boot 文件上传

java - 当扩展引用库中的类时,构建失败

java - 如何获取包含城市的时区列表?

java - 基于 WordNet 的语义相似性 (WNetSS) API

java - 无法在 Netbeans 7.3 中测试 RESTful Web 服务,如何摆脱路径上多余的 "/"

file - NetBeans 7.0 使用 'Download' 命令从服务器随机删除文件

code-generation - ANTLRWorks TestRig 编译时卡住

ANTLR - 允许关键字之间的任何字符

java - Antlr 语义谓词