• 0
seda

طلب مساعدة في استخدام javacc

سؤال

السلام عليكم

احتاج مساعدة في استخدام الjavacc

حيث رأيت مشاركة سابقة مقدمة مختصرة جدا عن javacc واحتاج زيادة توضيح

انا احتاجه في قراءة ملف java ثم عملlexical analyser and parsing

وقد وجدت له eclips plug in

وامكن فتح البرنامج وقراءة محتوى البرنامج ولكن لا اعرف كيف اضيف قواعد اللغة واين

فارجو التكرم ان امكن بالمساعدة وشكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

10 إجابة على هذا السؤال .

  • 0

انا مش فاهم المطلوب!!

ممكن بعض التوضيح؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

للأسف يا أخي ليس لدى أي خلفيه عن ال Javacc ..

يمكنك قراءة ال tutorials ..

http://javacc.java.net/doc/lookahead.html

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

انا مش فاهم المطلوب!!

ممكن بعض التوضيح؟

شكرا مقدما لتجاوبكم

الذي ارغب في الوصول اليه هو عمل licxecal analyser and parser for java file

فسؤالي كيف يمكن عمل ذلك باستخدام javacc

اخترت هذا البرنامج لانه مبني بالjava وارغب ان يكون code بهذه اللغة

البرنامج عند تشغيله بال eclips plug in يستقبل string مثل

1+2;

ويتاكد من خلوها من الاخطاء ويرد بذلك

لكن لو ادخلت مثل

int i=2;

عتبر فيه خطأ

فكيف ادخل قواعد لغة الjava لكي يفهمها ويعمل لها parsing او اذا كان هناك سبب آخر لا اعرف حيث اني اول مرة اتعامل مع مثل هذا البرنامج

ارجو ان يكون سؤالي واضح

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هذا قسم ال

JavaME

هل انت متأكد من مكان سؤالك؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بالفعل ال JavaCC هو من أنسب الخيارات المتاحة لبرمجة مترجم (Compiler) أو مفسر (Parser).

وهو مناسب للعمل الذي تريد أن تقوم به، ولكن تبعا لما تقوله يتطلب منك تعلم كتابة كود خاص بال JavaCC يكتب بطريقة معينة (عبارة عن قواعد (تكتب بشكل قريب من التوابع مع بعض الإضافات والإختلافات) ومفردات (Tokens، غالبا يعبر عنها هي والقواعد بال REs) وأكواد جافا عادية (يمكن أن تتوضع في أي مكان ضمن القواعد أو خارجها ...) ويحوي خيارات مفيدة معينة)

حيث أنه بشكل مبدئي بعد أن تقوم بإعداد ال JavaCC:

http://www.dcs.ed.ac.uk/home/java/extensions/JavaCC/jcc-setup-use.html

ستقوم بكتابة مفردات اللغة الخاصة بك وقواعدها ضمن ملف ذو لاحقة jj، وضمنه غالبا ستضطر أن تكتب أكواد جافا عادية (حيث يمكنك أن تستخدم مكتبات حتى ولو كانت غير موجودة فالجافاسي سي سيتأكد فقط من ال Syntax فقط لهذه الأكواد وبالتالي يمكنك أن تستخدم أيضاً صفوف غير موجودة، إضافة إلى وجود صف أساسي ستاتيكي يمثل المترجم الخاص بك) وعندما تنتهي منها ومن تنقيحها تقوم بتحويلها (الملف السابق) إلى مجموعة صفوف مكتوبة بلغة الجافا عن طريق تعليمة ال javacc.

لذلك عليك أن تبحث عن أي مراجع أو مقالات أو دروس بالإضافة إلى بعض الأمثلة (مجلد ال JavaCC من المفترض أن يحوي أمثلة عملية على كتابة الكود وغيرها) على النت حتى تصل إلى مبتغاك.

ستواجه بالطبع بعض الصعوبات في كتابة كود يخلو تماما من الأخطاء، ولكن تذكر دوماً أنه يجب أن تتأكد من أمرين الأول خلو الكود تماما من الأخطاء الكتابية، ثانيا عدم وجود غموض قواعدي.

وعذرا لعدم وجود إمكانية لتزويدك أو مساعدتك أكثر من ذلك.

ملاحظة: بالمرفقات يوجد بعض الملفات المساعدة يفضل الإطلاع عليها

JAVACC.rar

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بالفعل ال JavaCC هو من أنسب الخيارات المتاحة لبرمجة مترجم (Compiler) أو مفسر (Parser).

وهو مناسب للعمل الذي تريد أن تقوم به، ولكن تبعا لما تقوله يتطلب منك تعلم كتابة كود خاص بال JavaCC يكتب بطريقة معينة (عبارة عن قواعد (تكتب بشكل قريب من التوابع مع بعض الإضافات والإختلافات) ومفردات (Tokens، غالبا يعبر عنها هي والقواعد بال REs) وأكواد جافا عادية (يمكن أن تتوضع في أي مكان ضمن القواعد أو خارجها ...) ويحوي خيارات مفيدة معينة)

حيث أنه بشكل مبدئي بعد أن تقوم بإعداد ال JavaCC:

http://www.dcs.ed.ac.uk/home/java/extensions/JavaCC/jcc-setup-use.html

ستقوم بكتابة مفردات اللغة الخاصة بك وقواعدها ضمن ملف ذو لاحقة jj، وضمنه غالبا ستضطر أن تكتب أكواد جافا عادية (حيث يمكنك أن تستخدم مكتبات حتى ولو كانت غير موجودة فالجافاسي سي سيتأكد فقط من ال Syntax فقط لهذه الأكواد وبالتالي يمكنك أن تستخدم أيضاً صفوف غير موجودة، إضافة إلى وجود صف أساسي ستاتيكي يمثل المترجم الخاص بك) وعندما تنتهي منها ومن تنقيحها تقوم بتحويلها (الملف السابق) إلى مجموعة صفوف مكتوبة بلغة الجافا عن طريق تعليمة ال javacc.

اشكر جزيل الشكر ردك اخي الفاضل Excecutioner ولكن عفوا انا جديد علي استخدام الجافا لذلك لم افهم ما تقصده باستخدام صفوف غير موجوده اضافة الى الصف الاستاتيكي ،ومن ثم تحويلها عند الانتهاء الى مجموعة صفوف مكتوبة بلغة الجافا ، ايضا لم افهم ما تقصده بتعليمة javacc . هل لك ان توضح ذلك مشكورا .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اشكر جزيل الشكر ردك اخي الفاضل Excecutioner ولكن عفوا انا جديد علي استخدام الجافا لذلك لم افهم ما تقصده باستخدام صفوف غير موجوده اضافة الى الصف الاستاتيكي ،ومن ثم تحويلها عند الانتهاء الى مجموعة صفوف مكتوبة بلغة الجافا ، ايضا لم افهم ما تقصده بتعليمة javacc . هل لك ان توضح ذلك مشكورا .

أقصد بالصف أو الصفوف الـ Classes، سواء الموجودة مسبقا والمعرفة ضمن المكتبات (مثل صف LinkedList)، أو التي قمت أنت بكتابتها وتريد استخدامها مثلا ضمن القواعد، حيث يمكنك استخدامها مباشرة دون تضمين ال Packages التي تحتويها (وكنك ستضطر لذلك عندما تريد ربط وتنفيذ المشروع).

عذراً ما قصدته هو: أنه سيوجد صف ستاتيكي (اسمه يعبر عن المترجم الخاص بنا) يحوي التابع الرئيسي الستاتيكي (main)، كلمة static تعبر عن كونه موجود مرة واحد طول حياة البرنامج، يفضل أن تقرأ عن ذلك فالمراجع في ذلك كثيرة وأصح وأدق بكثير من كلامي، حيث أن وجود الصف السابق هو من أهم الامور الأساسية التي تتوجب علينا عندما نريد بناء مترجم بالإعماد على ال JavaCC.

أقصد بتحويلها أن:

الدخل: [الملف ذو اللاحقة jj الذي قمت بداخله بكتابة مفردات وقواعد اللغة الخاصة بك ...إلخ]

التحويل: [بعد التأكد من إعداد ال Javacc بشكل صحيح للإستخدام، تفتح ال CMD وتذهب إلى مكان ال javacc وتقوم بتنفيذ التعليمة التالية "javacc fileName.jj" وهنا في حال وجود أخطاء كتابية أو غموض بالقواعد ستظهر رسائل بذلك ولن يتم التحويل]

الخرج: [تنفيذ التعليمة السابقة سيعطي مجموعة صفوف (Classes) بلاحقة الجافا (مكتوبة بلغة الجافا)، ستمثل لك هذه الصفوف المترجم الذي قمت ببنائه]

بعد ذلك: [سيتوجب عليك فتح مشروع جديد ببرنامج ال Netbeans مثلا وإضافة الملفات السابقة والقيام بما يلزم (كربطه بمكتبات أو صفوف معينة) ليصبح مشروع قابل للتنفيذ].

تم تعديل بواسطه Executioner
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أقصد بتحويلها أن:

الدخل: [الملف ذو اللاحقة jj الذي قمت بداخله بكتابة مفردات وقواعد اللغة الخاصة بك ...إلخ]

التحويل: [بعد التأكد من إعداد ال Javacc بشكل صحيح للإستخدام، تفتح ال CMD وتذهب إلى مكان ال javacc وتقوم بتنفيذ التعليمة التالية "javacc fileName.jj" وهنا في حال وجود أخطاء كتابية أو غموض بالقواعد ستظهر رسائل بذلك ولن يتم التحويل]

ا

شكرا اخي الفاضل على هذا التوضيح لكن لم افهم مقصودك باعداد javaccبشكل كامل ذلك لاني حاولت استخدم التعليمة javacc fileName.jj وذلك عندما اردت تشغيل احد الامثلة التي موجودة في المجلد حيث انها تحوي قواعد الجافا فكتبت التالي javacc Examples\simpleExample\example1.jj

فلم يجد الpath

فارجو التكرم مشكورا بتوضيح كيف اشغل الامثلة

وبناء على شرحكم السابق فانا كيف استخدم الeclips plugin

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هذا قسم ال

JavaME

هل انت متأكد من مكان سؤالك؟

??????????????????????

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

??????????????????????

اعتذر بشدة لما حدث

واشكركم للتذكير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .