ثني

فليكس هو محلل معجمي سريع.
التحميل الان

ثني الترتيب والملخص

الإعلانات

  • Rating:
  • رخصة:
  • GPL
  • السعر:
  • FREE
  • اسم الناشر:
  • Vern Paxson
  • موقع ويب الناشر:

ثني العلامات


ثني وصف

فليكس هو محلل معجمي سريع. Flex هو Analyzer Lexical Feat.Flex هو مولد محلل معجمي سريع. إنها أداة لتوليد البرامج التي تقوم بإجراء مطابقة للنمط على النص. فليكس هو تطبيق مجاني غير مجاني من GNU لبرنامج LEX المعروف. هو أداة لتوليد الماسحات الضوئية: البرامج التي تم التعرف على الأنماط المعجمية في النص. فليكس يقرأ ملفات الإدخال المعطاة، أو إدخالها القياسي إذا لم يتم تقديم أسماء الملفات، للحصول على وصف للماسح الضوئي لتوليده. الوصف في شكل أزواج من التعبيرات العادية ورمز C، المسمى القواعد. ينشئ Flex كإخراج ملف مصدر ج، `Lex.yy.c '، والذي يحدد روتين` yylex () ". يتم تجميع هذا الملف وربطه مكتبة `LFL 'لإنتاج قابل للتنفيذ. عندما يتم تشغيل الملف القابل للتنفيذ، فإنه يحلل مدخلاته لحدوث التعبيرات العادية. كلما وجد أحدها، فإنه ينفذ رمز C المقابل. بعض الأمثلة البسيطة phamesfirst بعض الأمثلة البسيطة للحصول على نكهة كيفية استخدامها المرنة. تحدد الإدخال المرن التالي ماسحة ضوئية كلما واجهت السلسلة "اسم المستخدم" ستحل محلها باسم تسجيل دخول المستخدم: اسم المستخدم Printf (" S"، GetLogin ())؛ بشكل افتراضي، أي نص غير مطابقته يتم نسخ الماسح الضوئي إلى الإخراج، وبالتالي فإن التأثير الصافي لهذا الماسح الضوئي هو نسخ ملف الإدخال الخاص به إلى إخراجه بتوسيع كل حدوث "اسم المستخدم". في هذه المدخلات، هناك قاعدة واحدة فقط. "اسم المستخدم" هو النمط و "printf" هو الإجراء. يمثل "" بداية القواعد. إليك مثال بسيط آخر: Int Num_lines = 0، Num_Chars = 0؛ N ++ Num_lines؛ ++ num_chars؛ ++ Num_Chars؛ Main () {yylex ()؛ printf ("# الخطوط = D، # من السحر = DN"، Num_lines، Num_Chars)؛ } يحسب هذا الماسح الضوئي عدد الأحرف وعدد الأسطر الموجود في مدخلاته (لا ينتج أي إخراج بخلاف التقرير النهائي عن التهم). يعلن السطر الأول أن اثنين من العالمين، "num_lines" و "num_chars"، والتي يمكن الوصول إليها داخل "YYLEX ()" وفي "` الرئيسية () "المعلنة بعد الثانية" ". هناك قاعدتان، واحدة تتطابق مع Newline ("n") وزيادات كلا من عدد السطر وعدد الأحرف، والآخر يتطابق مع أي حرف آخر غير موجود جديد (يشار إليه "." تعبير منتظم). مثال أكثر تعقيدا إلى حد ما: / * الماسح الضوئي للحصول على لغة لغة تشبه لعبة * / {/ * تحتاج إلى هذا للمكالمات إلى atof () أدناه * / # تشمل } رقم * {رقم} + {printf ("عدد صحيح: s ( d) n"، yytext، atoi (yytext))؛ } {أرقام} + "." {أرقام} * {printf ("تعويم: s ( g) n"، yytext، atof (yytext))؛ } إذا كان | ثم | ابدأ | النهاية | الإجراء | وظيفة {printf ("كلمة رئيسية: SN"، yytext)؛ } {ID} printf ("معرف: SN"، YYTEXT)؛ "+" | "-" | "*" | "/" printf ("المشغل: SN"، yytext)؛ "{" } n] * "}" / * تناول تعليقات سطر واحد * / + / * أكل Whitespace * /. طباعة ("حرف غير معروف: SN"، YYTEXT)؛ الرئيسي (Argc، Argv) Int Argc؛ Char ** Argv؛ {++ argv، --argc؛ / * تخطي اسم البرنامج * / إذا (ARGC> 0) Yyin = FOPEN (ARGV ، "R")؛ آخر yyin = stdin؛ yylex ()؛ } هذه هي بدايات الماسح الضوئي البسيط للغة مثل Pascal. وهو يحدد أنواع مختلفة من الرموز والتقارير حول ما شهدته. سيتم شرح تفاصيل هذا المثال في الأقسام التالية.


ثني برامج ذات صلة

أليس مل

أليس ML هي لغة برمجة وظيفية ومتزامنة موزعة تستند إلى ML القياسية. ...

210

تحميل