2010-06-12 17 views
2

Java, ANTLR et débutant Netbeans ici.Netbeans et EOF

J'ai installé un jdk et des netbeans. J'ai commencé un nouveau projet sur netbeans 6.8 et j'ai ajouté le antlr-3.2.jar comme bibliothèque. J'ai également créé une classe lexer et parser en utilisant AntlrWorks. Ces classes sont nommées ExprParser.java et ExprLexer.java. Je les ai copiés dans un répertoire nommé path-to-netbeans-project/src/parsers.

Je dispose d'un fichier principal:

 
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(); 

    } 

} 

L'application se construit bien. Le livre que je suis en train de lire dit que je devrais lancer le programme et taper quelques trucs, puis appuyer sur Ctrl + Z (je suis sur Windows) pour envoyer EOF à la console. Le problème est que rien ne se passe quand j'appuie sur Ctrl + z dans la console netbeans. Lorsque je cours depuis la ligne de commande, ctrl + z fonctionne correctement.

C'est probablement beaucoup trop d'informations, mais je ne peux pas comprendre. Pardon. Probablement pas une bonne idée d'apprendre 3 nouvelles technologies à la fois.

Répondre

2

Au lieu de:

ANTLRInputStream input = new ANTLRInputStream(System.in); 

vous pouvez simplement faire:

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

args[0] est le premier paramètre de ligne de commande.

Ou tout simplement:

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