NetBeans и EOF - PullRequest
       26

NetBeans и EOF

2 голосов
/ 12 июня 2010

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 на консоль. Проблема в том, что ничего не происходит, когда я нажимаю Ctrl + z в консоли NetBeans. Когда я запускаю из командной строки, Ctrl + Z работает нормально.

Это, вероятно, слишком много информации, но я не могу понять это. Сожалею. Вероятно, не стоит изучать сразу 3 новые технологии.

1 Ответ

2 голосов
/ 13 июня 2010

Вместо:

ANTLRInputStream input = new ANTLRInputStream(System.in);

вы можете просто сделать:

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

, где args[0] - первый параметр командной строки.

Или просто:

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