هل هناك أي برامج تعليمية حول بناء مترجم بسيط باستخدام Alex + Happy؟
-
29-09-2019 - |
سؤال
أنا أعمل في مشروع مدرسي حيث يتعين علي بناء مترجم لفترات فوري للغة بسيطة باستخدام Alex + Happy في Haskell.
بعد النظر في الوثائق ، أفهم معظمها ، لكنني أرغب في رؤية مثال كامل على استخدام الأدوات.
المحلول
ليس على بناء المترجمين الفوريين ، ولكن على بناء Lexers و Parsers ، نعم. انظر مثال محلل معجمي في أليكس ، هنا, ، جنبا إلى جنب مع مقدمة إلى سعيد هنا. لقد وجدت ملفات haskell.x و haskell.y الموزعة في darcs repos لأليكس وسعيد مفيدة. يمكنك أن تجد هؤلاء هنا و هنا.
نصائح أخرى
كتبت سلسلة من المشاركات في bjbell.wordpress.com عند استخدام Alex+Happy+LLVM لكتابة برنامج التحويل البرمجي للغة مثل Java بسيطة.
رمز المصدر على github في https://github.com/bjwbell/newl-compiler (لم أتطرق إليها في غضون عامين).
Haddock لديه Alex/Happy Parser للوثائق ، والمصادر هي هنا في الملفات lex.x و parse.y.
كتبت منشورًا حول حل مشكلة وصفتها: http://eax.me/simple-interpreter/ (بالروسية). رمز المصدر هنا: https://bitbucket.org/afiskon/hs-interpreter/