pyPEG

البرمجيات قطة:
pyPEG
تفاصيل البرنامج:
الإصدار: 2.4.1
تاريخ إيداع: 14 Apr 15
المطور: Volker Birk
ترخيص: حرر
شعبية: 108

Rating: 1.3/5 (Total Votes: 3)

وبيثون هو لطيفة لغة البرمجة. بل انه يتيح لك الوصول إلى انها محلل الخاصة ومترجم. كما انه يعطي لك الوصول إلى موزعي أخرى مختلفة لأغراض خاصة مثل XML وسلسلة القوالب.
ولكن في بعض الأحيان قد تريد أن يكون محلل الخاصة بك. وهذا هو ما pyPEG ل.
للحصول على نظرة سريعة على ما يحدث، يرجى قراءة هذه المادة على كيفية تحليل لغة التعسفية إلى XML مع pyPEG على بلدي بلوق.
ما هو PEG؟
PEG يعني تحليل التعبير نحوي. انه شيء مثل فكرة التعبير العادية للسياق اللغات الحرة؛ تفسير واضح جدا ستجد في هذه المادة ويكيبيديا حول PEG.
مع أوتاد يمكن أن تصف نفسها غات مثل مع BNF (وانهم حتى مماثل).
ما هو محلل-مترجم؟
موزعي المشترك لا تستخدم أوتاد وأعلى إلى أسفل تحليل، ولكن LR (ن) أو LL (ن) وإعراب أسفل إلى أعلى. وهذا يؤدي إلى فكرة تنفيذ مولدات المحلل.
لأنه مع LR (ن) أو LL (ن) موزعي تحتاج إلى حساب خارج DFA أولا، وعادة ما ترك مولد محلل تفعل ذلك بالنسبة لك. والنتيجة هي تنفيذ محلل لقواعد اللغة BNF الخاص بك، والذي كان الإدخال. يمكن للمرء أن استدعاء مولد محلل مترجم من BNF إلى تنفيذ المحلل.
محلل-مترجم يفعل عمل كمترجم بدلا من أن يكون مثل هذا المجمع. مجرد إعطاء قواعد اللغة الخاصة بك كمدخل، وذلك بتوزيع لغة وصف من النص. لن يكون هناك برنامج تم إنشاؤه.
باستخدام pyPEG
وهذا يعني: باستخدام pyPEG من السهل جدا؛-) إذا كنت تعرف التعابير العادية بالفعل، وسوف تتعلم لاستخدام pyPEG بسرعة.
عينة صغيرة
على سبيل المثال: التفكير في لغة بسيطة مثل هذا واحد:
وظيفة FAK (ن) {
& nbsp؛ إذا (ن == 0) {// 0! هو 1 بالتعريف
على & nbsp؛ العودة 1؛
على & nbsp؛} آخر {
على & nbsp؛ عودة ن * FAK (ن - 1)؛
على & nbsp؛}؛
}
وpyPEG لتلك اللغة يشبه رمز التالي (انظر أيضا نموذج البرنامج النصي):
تعليق مواطنه (): عودة [re.compile (ص "//.*")، re.compile ("/*.*؟*/"، re.S)]
الحرفي مواطنه (): عودة re.compile (".؟ *" r'd * .D * | | د + ')
رمز مواطنه (): عودة re.compile (ص "ث +")
مشغل مواطنه (): عودة re.compile (ص "+ | - | * | / | ==")
عملية مواطنه (): رمز العودة، المشغل، [الحرفي، functioncall]
التعبير مواطنه (): عودة [الحرفي وتشغيل وfunctioncall]
expressionlist مواطنه (): العودة التعبير، -1، ("،" والتعبير)
returnstatement مواطنه (): الكلمة تعيده ("العودة")، والتعبير
ifstatement مواطنه (): الكلمة تعيده ("إذا")، "(" والتعبير و")"، كتلة، الكلمة الرئيسية ("آخر")، وكتلة
بيان مواطنه (): عودة [ifstatement، returnstatement]، "."
كتلة مواطنه (): عودة "{"، -2، بيان، "}"
parameterlist مواطنه (): عودة "("، رمز، -1، ("،" رمز)، ")"
functioncall مواطنه (): عودة رمز، "("، expressionlist ")"
وظيفة مواطنه (): الكلمة تعيده ("أن وظيفة")، رمز، parameterlist، كتلة
مواطنه simpleLanguage (): وظيفة عودة

ما هو الجديد في هذا الإصدار:

هذا هو الإفراج تنظيف. مدونة تحليل () ويؤلف () كانت ثابتة.

ما هو الجديد في الإصدار 1.4:

هذا الإصدار بإصلاح بعض الخلل مع packrat التوزيع.

ما هو الجديد في الإصدار 1.3:

استبدال الصفوف (tuple) لأسماء في pyAST من قبل رمز (قائمة) فئة، والذي يتوافق إلى حد ما، ولكن يدعم رمز أكثر وصفي في الخلفيات مترجم، أيضا.

ما هو جديد في الإصدار 1.2:

البق مع Unicode في معالجة الأخطاء تم إصلاحها.

ما هو جديد في الإصدار 1.1:

تمت إضافة دعم

ويونيكود.

ما هو الجديد في الإصدار 0.46:

pyPEG.print_trace إلى True.
تحويل pyPEG لبيثون 3.X الآن يعمل بسلاسة باستخدام 2to3
القواعد النحوية التي يتم تطبيقها يمكن تتبع اختياريا من خلال وضع
pyPEG سيتم إخراج هذا التتبع لSTDERR.

ما هو الجديد في الإصدار 0.45:

إصلاح الأخطاء.

ما هو الجديد في الإصدار 0.44:

pyPEG تزين الآن كل كائن pyAST مع اسم الملف المصدر ورقم السطر.

المتطلبات:

بيثون

برامج مماثلة

D frontend for GCC
D frontend for GCC

14 Apr 15

byacc
byacc

3 Jun 15

GCC MELT
GCC MELT

17 Feb 15

g95
g95

2 Jun 15

البرامج الأخرى من المطور Volker Birk

YML
YML

11 May 15

تعليقات ل pyPEG

لم يتم العثور على التعليقات
إضافة تعليق
بدوره على الصور!