الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طلب مساعدة حول lexical analysis

مغلق
بدأه eva_scence في 5 أبريل 2006 · 7 رد · 2,227 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام عليكم

الى اهل العلم ارجو مساعدتي

هذا الرسم توضيحي للبرنامج المطلوب وهو عبارة عن محلل المفردات للمترجم lexical analysis for compiler

ارجو المساعده العاجلة

شارك في اكثر من منتدى للمساعدة بطلبي فلم أجد من مساعدة ولو بفكرة بسيطة

ومرتجي الخير منكم ومن السمعة الطيبة التى سمعناها عن هذا المنتدى

شاكرا لكم

diagram_for_project.rar

#2
eva_scence كتب:
سلام عليكم

الى اهل العلم ارجو مساعدتي

هذا الرسم توضيحي للبرنامج المطلوب وهو عبارة عن محلل المفردات للمترجم lexical analysis for compiler

ارجو المساعده العاجلة

شارك في اكثر من منتدى للمساعدة بطلبي فلم أجد من مساعدة ولو بفكرة بسيطة

ومرتجي الخير منكم ومن السمعة الطيبة التى سمعناها عن هذا المنتدى

شاكرا لكم

this simple program to help i wana it quickly

#3

لو سمحت ممكن توضح طلبك عشان الاعضاء يفهموك انا مش فاهم السوال

والملف اللى فى المرفقات لم اتمكن من فتحه لانى لا املك office على الجهاز

ياريت تكتب الموضوع بتاعك بشكل واضح

#4

اخواني شرح داخل هذا الملف افتحه عن طريق word pad وكتابة هذا الرسم بلغة فيجول سي ++ (mfc)

وارجو المساعده العاجلة

diogram_for_project.rtf

#5

بسم الله الرحمن الرحيم

السلام عليكم

بالنسبة للlexical analysis for compiler كفكرة مبدائية ممكن تستخدم الStringBuldier فى حالة كتابة المستخدم لاى كلمة داخل الtextbox مثلا تخزن داخل الstringBuilder عن طريق Append وعند الضغط على مسافة خد اللى فى الStringBuilder وإعمل علية check هل هوة موجود داخل array مثلا لو كان موجود وعبارة مثلا عن DataType وبالتالى يطبع فى TextBox أخر ان اللى داخل الstringbuilder عبارة عن DataType وهكذا وبعد كدة يسمح كل الموجود داخل الstringbuilder مثال للتوضيح

أناعندى فى البرنامج array بها مثلا int,duoble,float,string......etc والمستخدم جاء فى البرنامج و بدأ فى كتابة int مع العلم ان كل حرف بتعمل لة append داخل الstringbuilder وعند الضغط على space يختبر البرنامج الكلمة الموجودة داخل الstringbuilder إذا كانت من البيانات الموجودة داخل الarray وبالتالى يطبع أن دة عبارة عن DataType وهكذا

ويارب أكون وضحت لك حاجة :)

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#6

أخي ممكن تكتب لي الكود على نفس الرسم اللي بالملف المرفق؟

ولك جزيل الشكر ويكون بميزان حسناتك بمساعدتك لي

#7

بسم الله الرحمن الرحيم

يا باشمهندس لو قرأت قواعد المنتدى ستجد أن المنتدى ليس لحل الTasks لينا ولكن يجب أولا أن نفكر ونجتهد ونضع محاولا تنا وسنجد بأذن الله الحل ولكن ليس لندخل ع المنتدى ونطلب حل الواجب مثلا

هحاول بقدر الإمكان أوضحلك على المثال اللى انتا وضعة فى المرفقات أول حاجة المستخدم هيبدأ يكتبها real يبدأ بكتابة الr ثم الe ثم الa ثم الl كل ما يتك على زر فى الكيبورد بستقبل منة ذلك الحرف وأضعة فى stringbuilder تمام كدة

دلوقتى انا عندى فى عندى فى الstringbuilder كلمة الreal بعد كدة المستخدم أتك مسافة فى تلك الحالة أختبر هل اللى موجود داخل الstring يناظر أى keyword فعلا وبالتالى أطبعلة فى textbox or whatever أن اللى دخلة دة عبارة عن keyword وبعد كدة أمسح كل الموجود داخل الstringbuilder بعد كدة إبدا بإستقبال من المستخدم x

طب هعمل check كما وعرنفا ع الx هل هية keyword or DataType لأ وبالتالى هتكون إسم عبارة عن إسم المتغير وهكذا طب بعد دة هيك مسافة وأبد بإستقبال ال= هة هل دى operation أة وبالتالى يطبع أن دى عبارة عن operation وهكذا

مع العلم للتسهيل ممكن وأنتا قبل التخزين داخل الstring تعرف المستخدم ضغط على أنهى button فى الكيبورد عن طريق الASCII لكل button

يارب أن وضحتلك ما تريدة وأتعذر عن التطويل

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#8

مرحبا اخواني

انا مع كلام eng_3llam لازم الواحد يحاول ومن يوقف عند نقطة يطلب مساعدة الاخرين حتى نتعلم ونفكر موش بس نسوي كوبي وبيست ...

:D للعلم انا اكثر واحد يسوي كوبي بيست بس يعني حبيت اتفلسف

-------------------------------------------------------

لازم اول شي تبني مصفوفة ال program يعني مثل ما قال استاذي eng_3llam

لوكان السورس موجود بفايل نقرة من الفايل حرف حرف ونحطهة بأعمدة صف مصفوفة معينة ومن يجينة سبيس نعتبر انتهت الكلمة وننزل صف جديد من مصفوفة ال program وهكذا... يعني بالاخير حنشوف كل كلمة موجودة بصف من مصفوفة ال program .

طبعا يفضل تنهي كل صف بالعلامة $ حتى تقدر تستفيد من دوال الstring حتى تتعامل وياها بسهولة

--------------------

بعدين تعرف مصفوفات تحوي كل ال keyword اللي تريدهة

ونفس الشي بالنسبة لل operation

اقتباس
char keyword [10][10]={

  {"program\0"},

  {"begin\0"},

  {"end\0"},

  {"if\0"},

  {"else\0"},

  {"than\0"},

  {"for\0"},

  {"do\0"},

  {"while\0"},

  {"read\0"},

      };

اما بالنسبة لل constant فة اعتقد تقصد انها variable name or id

فة هية عبارة عن كلمة تبدأ بحرف ومايهم اذا تكرر وراها حروف او ارقام

وحتى تسهل على نفسك ال constant هوة اللي موش constant and not number and not operation

اما ال NUMBER بشكل عام

تقدر تعرفة بهالطريقة انك تختبر كل اعمدة الصف مال مصفوفة السورس اعداد اي اكبر او يساوي الصفر و اصغر او يساوي التسعة

طريقة ال CHECK

اقتباس
int iskeyword(int i)

{

for (j=0 ; j<=10 ; j++)

if (!strcmp (program,keyword[j]))

{type =1;return 1;}

return 0;

}

اتمنى اكون ساعدت بحاجة

m16.jpg

سأحمل روحي على راحتي والقي بها في مهاوي الردا

فأما حياة تسر الصديق و اما ممات يغيض العدا

هذا الموضوع مغلق.

مواضيع مشابهة