Dynamicall تحديث القواعد في وقت التشغيل
سؤال
عند إرسال الأمر عند الأمر، يتم إنهاء عادة بواسطة r n، ولكن في الواقع، هؤلاء حقا اثنين "متغيرات التسجيل" S3 و S4.
افتراضيا S3 == ' r' و S4 == ' n'، ولكن يمكن للمستخدم تغيير هذه وقت التشغيل مع الأمر ATSX =
كيف يمكنني التعامل مع هذا في My Antlr Lexer / Parser؟
يحتوي كل أمر على النموذج في [المعلمات] S3S4، كيف يمكنني التعامل مع ذلك إذا كان المستخدم يغير قيمة S3 أو S4؟
شكرا مقدما على أي مساعدة...
المحلول
لا، لا يوجد مثل هذا الخيار لتغيير قواعد Lexer- أو محلل في ديناميكيا. بالطبع، هناك محتمل في العمل مثل إعادة إنشاء Lexer / المحلل في تغيير متغيرات التسجيل، لكنها لن تكون جميلة، أعتقد ...
يحرر
كتب mawg
إعادة إنشاء LEXR & POARSER (حسنا، Lexer فقط، أعتقد) - هل يمكن أن Lowrate على ذلك؟
أعد كتابة ملف Grammar الأصلي (فقط قواعد Lexer، كما تذكر بشكل صحيح) وإعادة ترجمة INTER يرى: http://java.sun.com/javase/6/docs/api/javax/tools/javacompiler.html.