سؤال

Java ، Antlr و Netbeans Newbie هنا.

لقد قمت بتثبيت JDK و NetBeans. لقد بدأت مشروعًا جديدًا على NetBeans 6.8 وقد أضفت Antlr-3.2.jar كمكتبة. قمت أيضًا بإنشاء فئة Lexer و Larser باستخدام 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 تقنيات جديدة في وقت واحد.

هل كانت مفيدة؟

المحلول

بدلاً من:

ANTLRInputStream input = new ANTLRInputStream(System.in);

يمكنك القيام فقط:

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

أين args[0] هي المعلمة سطر الأوامر الأولى.

أو فقط:

ANTLRStringStream input = new ANTLRStringStream("your source here");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top