الحصول على البدء والمواقف مع نهاية ANTLR
-
07-07-2019 - |
سؤال
وأنا حاليا باستخدام ANTLR تحليل بعض الملفات مع لغة الملكية. لدي حاجة إلى تسليط الضوء على قسم منه على محرر (التفكير في تسليط الضوء على الأسلوب في فئة Java، على سبيل المثال).
هل أي شخص لديه لمحة عن كيفية الحصول عليها؟ يقول لدي هذا الرمز:
function test(param1, param2) {
}
وظيفة هي الكلمة، على المركز الأول أحصل في محلل هو واحد من "اختبار" المعرف. كيف يمكنني الحصول على وظائف من هناك حتى متعرج تنتهي؟ قائمة المعلمات هو دينامية، كما هو متوقع، لذلك كنت لا تعرف مقدما طوله.
وشكرا لك!
المحلول
إذا فهمت سؤالك، أعتقد أنك يمكن استخدام السمة 'نقاط البيع' على كل رمز
func: FUNCTION ID '(' ID (',' ID)* ')' {
System.out.println("Position = " + $FUNCTION.pos);
}
والذي يشير إلى موضع الحرف داخل الخط العد من الصفر.
نصائح أخرى
وعدم الالتزام تماما لماذا المركز الأول كنت تحصل هو موقف الاختبار. يجب أن تكون قادرة بسهولة للحصول على الطابع إزاحة رمز "وظيفة" إذا كنت مصممة مواصفات نمط بشكل صحيح. يمكنك سرد الأجزاء ذات الصلة من مواصفات؟