MAGES هو الوريث الرسمي لـ YAMP. إنه محلل تعبير ومترجم بسيط للغاية ولكنه قوي. يمكنك استخدام MAGES لتضمين محرك برمجة نصية متطور وسهل التخصيص وخفيف الوزن في تطبيقك.
ومن بين التطبيقات الأخرى، تم استخدام MAGES في PowerToys من Microsoft.
تم تحديث MAGES للتو (الإصدار 3.0.0) ببيانات تعريف الكائن ودعم القائمة المباشرة وبناء جملة JSX.
2023 :
تم تحديث MAGES (الإصدار 2.0.0) بدعم الأعداد المركبة. كما تم تحديث هدف البناء ووقت التشغيل للاستفادة من الإمكانيات الحديثة.
2018 :
تم إصدار النسخة المستقرة الأولى. يحتوي الإصدار الحالي 1.6.0 على REPL محسّن. تحتوي المكتبة على كل شيء لتنفيذ عمليات البرمجة النصية خفيفة الوزن في C#. تتوفر أيضًا مقالة CodeProject حول المكتبة (تحتوي أيضًا على بعض مقارنات الخلفية والأداء).
MAGES نفسها ليس لديها أي تبعيات، ومع ذلك، تعتمد الاختبارات على NUnit والمعايير تستخدم BenchmarkDotNet. عادةً، يجب تثبيت MAGES عبر مصدر حزمة NuGet. إذا لم ينجح هذا معك، فقم باستنساخ المصدر وإنشاء MAGES بنفسك. تأكد من اجتياز جميع اختبارات الوحدة.
تم تصميم المكتبة بأكملها ليتم استهلاكها من تطبيقات .NET Core 3.0 (أو أعلى) / .NET 5.0 (أو أعلى). وهذا يعني أنه (من بين أمور أخرى) متوافق مع Unity 2021.2 أو Mono 6.4. تتوفر حزمة NuGet عبر موجز الحزمة الرسمي.
في أبسط الحالات، تقوم بإنشاء محرك جديد ليحتوي على نطاق عالمي (للمتغيرات والوظائف) ويبدأ التفسير.
var engine = new Mages . Core . Engine ( ) ;
var result = engine . Interpret ( " sin(2) * cos(pi / 4) " ) ; // 0.642970376623918
يمكنك أيضًا المضي قدمًا وإنشاء كتل قابلة لإعادة الاستخدام من المقتطفات.
var expOne = engine . Compile ( " exp(1) " ) ;
var result = expOne ( ) ; // 2.71828182845905
أو يمكنك التفاعل مع العناصر التي أنشأها MAGES.
var func = engine . Interpret ( " (x, y) => x * y + 3 * sqrt(x) " ) as Mages . Core . Function ;
var result = func . Invoke ( new Object [ ] { 4.0 , 3.0 } ) ; // 18.0
أو حتى أبسط (يتم شرح التفاصيل في مستند البدء):
var func = engine . Interpret ( " (x, y) => x * y + 3 * sqrt(x) " ) as Mages . Core . Function ;
var result = func . Call ( 4 , 3 ) ; // 18.0
هذه مجرد بعض الأمثلة الأساسية. يمكن العثور على مزيد من المعلومات في الوثائق.
يتم تقديم الوثائق في شكل مستندات Markdown التي يتم وضعها في مجلد المستندات الخاص بهذا المستودع. الروابط التالية تستحق التدقيق:
إذا كان هناك أي شيء مفقود، أو غير واضح، أو خاطئ، فإما أن ترسل PR أو تقدم بمشكلة. راجع القسم التالي حول المساهمات لمزيد من المعلومات.
نرحب بشدة بالمساهمات في شكل تطبيقات الميزات أو إصلاحات الأخطاء، ولكن يجب تنفيذها بطريقة منظمة ومتسقة. يجب قراءة إرشادات المساهمة قبل البدء بأي عمل.
يمكن أيضًا أخذ المساهمات في شكل تقارير الأخطاء وطلبات الميزات. يحيا تطوير المصادر المفتوحة!
قواعد سيمفر هي خبزنا وزبدتنا. وهذا يعني باختصار:
وبالتالي: لا تتوقع أي تغييرات جذرية داخل نفس الإصدار الرئيسي.
قامت الشركات التالية برعاية جزء من تطوير MAGES.
شكرا على كل الدعم والثقة في المشروع!
رخصة معهد ماساتشوستس للتكنولوجيا (MIT)
حقوق الطبع والنشر (ج) 2016-2024 فلوريان رابل
يُمنح الإذن مجانًا لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به ("البرنامج")، للتعامل في البرنامج دون قيود، بما في ذلك، على سبيل المثال لا الحصر، حقوق الاستخدام والنسخ والتعديل والدمج. ونشر و/أو توزيع وترخيص من الباطن و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين تم توفير البرنامج لهم بالقيام بذلك، وفقًا للشروط التالية:
يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.
يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريحًا أو ضمنيًا، بما في ذلك، على سبيل المثال لا الحصر، ضمانات القابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. لا يتحمل المؤلفون أو أصحاب حقوق الطبع والنشر بأي حال من الأحوال المسؤولية عن أي مطالبة أو أضرار أو مسؤولية أخرى، سواء في إجراء العقد أو الضرر أو غير ذلك، الناشئة عن أو خارج أو فيما يتعلق بالبرنامج أو الاستخدام أو المعاملات الأخرى في برمجة.