مشروع تم اقتراح طريقة جديدة للتكامل المضمّن لرمز C في نصوص Python. يتم تعريف وظائف C مباشرة في نفس ملف تعليمات Python، ويتم تمييزها بواسطة مصمم الديكور "@inlinec". يتم تنفيذ البرنامج النصي التلخيصي كما هو بواسطة مترجم Python ويتم تحليله باستخدام الآلية المتوفرة في Python ، مما يجعل من الممكن توصيل محلل لتحويل البرنامج النصي قبل تحليله بواسطة المترجم (كقاعدة عامة، يتم استخدام وحدة برامج الترميز لتحويل ترميز النص الشفاف، ولكنها تسمح لك أيضًا بتحويل محتويات البرنامج النصي بشكل تعسفي).
يتم توصيل المحلل اللغوي كوحدة نمطية ("من inlinec import inlinec")، والتي تنفذ المعالجة الأولية وتترجم بشكل فوري تعريفات وظائف C المميزة باستخدام التعليقات التوضيحية @inlinec إلى روابط ctypes وتستبدل نص وظيفة C بـ دعوة لهذه الارتباطات. بعد هذا التحويل، يتلقى مترجم بايثون النص المصدر المحول الصحيح للبرنامج النصي، والذي يتم فيه استدعاء وظائف C باستخدام . يتم استخدام طريقة مماثلة أيضًا في المشروع والذي يسمح لك بدمج أكواد HTML وPython في ملف واحد.
# الترميز: مضمن
من inlinec استيراد inlinec
@inlinec
اختبار الدفاع ():
#تضمن
اختبار باطل () {
printf("مرحبا بالعالم");
}
يتم تقديم التطوير حتى الآن كنموذج أولي تجريبي، والذي يحتوي على عيوب مثل عدم وجود دعم لتمرير المؤشرات (باستثناء السلاسل) إلى الوظيفة، والحاجة إلى التشغيل
"gcc -E" للمعالجة المسبقة للتعليمات البرمجية، وحفظ الملفات المتوسطة *.so و*.o و*.c في الدليل الحالي، وعدم تخزين النسخة المحولة مؤقتًا وإجراء مراحل تحليل غير ضرورية (تأخيرات طويلة في كل مرة يتم تشغيلها).
المصدر: opennet.ru
