MteEVAL هي مكتبة لتجميع وتقييم التعبيرات في وقت التشغيل. يتم تحويل التعبيرات إلى كود بايت ثم يتم تنفيذها عند الطلب باستخدام جهاز افتراضي بسيط.
هناك أربعة إصدارات من المكتبة: Android (B4A)، iOS (B4i)، Java (B4J)، JavaS2 (B4A/B4J).
JavaS2 هو إصدار الأداء للمرحلة الثانية من المكتبة بلغة Java الأصلية.
راجع Anywhere Software لمعرفة المزيد حول أدوات التطوير عبر الأنظمة الأساسية B4A وB4i وB4J.
يعد إنشاء التعبيرات في وقت التشغيل أداة قوية تسمح بتعديل العمليات الحسابية وتدفق البرنامج بعد التثبيت، الأمر الذي قد يتطلب تحديثًا فعليًا أو إنشاء تطبيق مخصص. على سبيل المثال، يمكن لأي تطبيق مصمم لإدارة خطة تعويض المبيعات أن يستفيد من تعبيرات وقت التشغيل، حيث قد يرغب المستخدم النهائي في تخصيص صيغ الخطة حسب أعضاء الفريق ومزيج المنتجات وأهداف المبيعات.
تطبق MteEVAL فئة واحدة تسمى Codeblock. يعتمد برنامج Codeblock الخاص بـ MteEVAL على بناء الجملة من برنامج التحويل البرمجي xBase الموقر في التسعينيات Clipper 5 حيث بدأ البناء. تبدأ كتل التعليمات البرمجية بقوس مفتوح، متبوعة بقائمة معلمات اختيارية بين الأنابيب، ثم التعبير، وتنتهي بقوس إغلاق.
{| < parameters > | < expression > }
ما عليك سوى تجميع Codeblock مرة واحدة. بمجرد تجميعها، يمكنك تقييمها عدة مرات حسب الحاجة، كل ذلك أثناء توفير وسائط مختلفة.
مثال 1: Codeblock بدون معلمات
Dim cb as Codeblock
cb.Initialize
cb.Compile( "{||5 + 3}" )
Result = cb.Eval 'Result=8
المثال 2: مجموعة التعليمات البرمجية مع المعلمات
Dim cb as Codeblock
cb.Initialize
cb.Compile( "{|length,width|length*width}" )
Area = cb.Eval2( Array( 3 , 17 ) ) 'Area=51
عند تقييم Codeblock باستخدام المعلمات، استخدم طريقة Eval2.
المثال 3: تجميع Codeblock وتقييمه وتكراره
Dim cb as Codeblock
cb.Initialize
cb.Compile( "{|sales,r1,r2| r1*sales + iif( sales > 100000, (sales-100000)*r2, 0 ) }" )
Commission1 = cb.Eval2( Array( 152000 , . 08 , . 05 ) ) 'Commission1=14760
Commission2 = cb.Eval2( Array( 186100 , . 08 , . 07 ) ) 'Commission2=20915
Commission3 = cb.Eval2( Array( 320000 , . 08 , . 05 ) ) 'Commission3=36600
تدعم المكتبة عوامل تشغيل نمط C/Java إلى جانب قائمة متزايدة من وظائف B4X الأصلية.