سؤال

أرغب في تحليل مصدر REXX حتى أتمكن من تحليل بنية البرنامج من Java.

أحتاج إلى القيام بأشياء مثل تطبيع الهياكل المنطقية المكافئة في المصدر والتي تختلف من الناحية النحوية، والعثور على إعلانات متغيرة مكررة، وما إلى ذلك.ولدي بالفعل خلفية جافا.

هل هناك طرق أسهل للقيام بذلك من كتابة مجموعة كبيرة من التعليمات البرمجية؟

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

المحلول

اذا كنت تمتلك بي إن إف قواعد Rexx ، إذن javacc يمكن أن تساعدك على بناء أست (شجرة بناء الجملة المجردة) تمثيل رمز Rexx.

وبشكل أكثر دقة، سوف يقوم javacc ببناء ملف دروس جافا والتي سوف :

  • تحليل رمز Rexx و
  • في الواقع يبني AST.

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

نصائح أخرى

وREXX ليست لغة سهلة لتحليل مع الأدوات المشتركة، وخاصة تلك التي نتوقع النحوي BNF. وخلافا لمعظم اللغات التي صممها الأشخاص المعرضين للC، REXX ليس لديها أي الكلمات المحجوزة، مما يجعل مهمة معقدة إلى حد ما. في الواقع يتم حل كل المصطلح الذي يبدو وكأنه كلمة محجوزة فقط في سياق محدد لها (<م> على سبيل المثال ، "سحب" محجوز فقط لأن الكلمة الأولى من تعليمات PULL أو الكلمة الثانية من التعليم PARSE PULL - أنت يمكن أن يكون أيضا متغير يسمى PULL ( "PULL = 1 + 2")). بالإضافة إلى أن هناك بعض الآثار من المستغرب جدا من التعليقات. ولكن ANSI REXX مستوى ديه بناء الجملة الكامل وجميع القواعد.

وإلقاء نظرة على ANTLR ، أنه حقا لا عمل لطيفة من بناء AST وتحوله الخ ... لديها لطيفة محرر (ANTLRWorks)، هو مبني على جافا، ويمكن تصحيح الخاص مشوا محلل / شجرة في حين أنها تعمل في التطبيق الخاص بك. حقا يستحق التحقيق في أي نوع من تحليل العمل.

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