الحصول على البدء والمواقف مع نهاية ANTLR

StackOverflow https://stackoverflow.com/questions/281563

  •  07-07-2019
  •  | 
  •  

سؤال

وأنا حاليا باستخدام ANTLR تحليل بعض الملفات مع لغة الملكية. لدي حاجة إلى تسليط الضوء على قسم منه على محرر (التفكير في تسليط الضوء على الأسلوب في فئة Java، على سبيل المثال).

هل أي شخص لديه لمحة عن كيفية الحصول عليها؟ يقول لدي هذا الرمز:

function test(param1, param2) {
}

وظيفة هي الكلمة، على المركز الأول أحصل في محلل هو واحد من "اختبار" المعرف. كيف يمكنني الحصول على وظائف من هناك حتى متعرج تنتهي؟ قائمة المعلمات هو دينامية، كما هو متوقع، لذلك كنت لا تعرف مقدما طوله.

وشكرا لك!

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

المحلول

إذا فهمت سؤالك، أعتقد أنك يمكن استخدام السمة 'نقاط البيع' على كل رمز

func: FUNCTION ID '(' ID (',' ID)* ')' {
        System.out.println("Position = " + $FUNCTION.pos);
}

والذي يشير إلى موضع الحرف داخل الخط العد من الصفر.

نصائح أخرى

وعدم الالتزام تماما لماذا المركز الأول كنت تحصل هو موقف الاختبار. يجب أن تكون قادرة بسهولة للحصول على الطابع إزاحة رمز "وظيفة" إذا كنت مصممة مواصفات نمط بشكل صحيح. يمكنك سرد الأجزاء ذات الصلة من مواصفات؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top