2010-06-12 2 views
2

Java, ANTLR и Netbeans новичок здесь.Netbeans и EOF

Я установил jdk и netbeans. Я начал новый проект на netbeans 6.8, и я добавил файл antlr-3.2.jar в качестве библиотеки. Я также создал класс lexer и parser, используя 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 отлично работает.

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

ответ

2

Вместо:

ANTLRInputStream input = new ANTLRInputStream(System.in); 

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

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

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

Или просто:

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