قواعد التعبير

‏‫ملاحظة

Microsoft Power Fx هو الاسم الجديد للغة الصيغة لتطبيقات اللوحة. هذه المقالات عبارة عن عمل قيد التقدم حيث نقوم باستخراج اللغة من تطبيقات اللوحة ودمجها مع منتجات Microsoft Power Platform الأخرى وجعلها متوفرة كمصدر مفتوح. ابدأ بـ نظرة عامة على Microsoft Power Fx لمقدمة عن اللغة.

يستند Microsoft Power Fx إلى الصيغ التي تربط اسمًا بتعبير. تمامًا كما هو الحال في أوراق عمل Excel، نظرًا لتغير التبعيات الواردة إلى التعبير، تتم إعادة حساب التعبير وتتغير قيمة الاسم، وربما يتم إعادة الحساب المتتالي إلى صيغ أخرى.

تغطي هذه المفردات جزء التعبير من الصيغة. ربط اسم لإنشاء صيغة يعتمد على كيفية تكامل Power Fx. في أوراق العمل، لا يتم الكشف عن بناء جملة الربط، بل يتم تضمينه من خلال الموقع الذي تمت كتابة التعبير فيه، على سبيل المثال، إدخال =B1 في الخلية A1. في بعض الحالات، لا يكون هناك ربط مطلوب على الإطلاق، بينما يتم استخدام Power Fx كمقيم تعبير، على سبيل المثال في دعم الأعمدة المحسوبة في جدول قاعدة البيانات. بالنسبة إلى Power Apps، يكون الربط ضمنيًا عند العمل في Power Apps Studio باستخدام تنسيق تسلسل يعتمد على YAML للاستخدام خارج Power Apps Studio.

الاتفاقية الخاصة بالتعبير

يتم عرض القواعد المعجمية والنحوية باستخدام الإنتاج النحوي. يحدد كل إنتاج غير طرفي رمزا غير طرفي والتوسعات المحتملة لذلك الرمز غير الطرفي في تسلسل من الرموز غير الطرفية أو الطرفية. في عمليات الإنتاج غير النهائية، يتم عرض الرموز غير الطرفية بالنوع الملئ، كما يتم عرض الرموز الطرفية في خط ثابت العرض.

السطر الأول من إنتاج نقطية هو اسم الرمز غير الطرفي الذي يتم تعريفه، يتبعه نقطه. يحتوي كل سطر متتالي ذي مسافة بادئة على توسع محتمل للرمز غير الطرفي المعطى على شكل سلسلة من الرموز غير الطرفية أو الرموز الطرفية. على سبيل المثال، الإنتاج:

  المعرف العالمي:
    [@المعرف]

يحدد GlobalIdent أن تتكون من الرمز المميز[@، متبوع بمعرف، يتبعه الرمز المميز].

وعندما يكون هناك أكثر من توسع محتمل واحد لرمز غير طرفي، يتم سرد البدائل في أسطر منفصلة. يستخدم الرمز "opt" للإشارة إلى رمز اختياري. على سبيل المثال، الإنتاج:

  وظيفة الاتصال:
    معرف الوظيفة(FunctionArgumentsopt)

يكون اختصارا ل:

  وظيفة الاتصال:
    معرف الوظيفة()
    معرف الوظيفة(FunctionArguments)

عادةً ما يتم سرد البدائل في سطور منفصلة، على الرغم من أنه في الحالات التي يوجد فيها العديد من البدائل، قد تسبق عبارة "واحد من" قائمة التوسعات الواردة في سطر واحد. هذا ببساطة اختصار لإدراج كل بديل في سطور منفصلة.

على سبيل المثال، الإنتاج:

  عشريرقم:واحد من
    0123456789

يكون اختصارا ل:

  عشريرقم:
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9

تحليل معجمي

يعرف إنتاج الوحدة اللغوية القوة اللغوية لتعبير Power Fx. يتوافق كل تعبير Power Fx صالح مع هذه الطريقة.

  وحدة التعبير:
    اختيار عناصر التعبير

  عناصر التعبير:
    عنصر التعبير
    ExpressionElementExpressionElementsopt

  عنصر التعبير:
    بيضاء
    التعليق

على المستوى الكتابي، يتكون تعبير Power Fx من دفق من عناصر مسافة فارغة وتعليق ورمز مميز. تغطي الأقسام التالية كلا من هذه الإنتاجات. تكون العناصر الرمزية فقط ذات أهمية في المجمع اللغوي.

مسافة فارغة

يتم استخدام المسافة الفارغة لفصل التعليقات الرموز داخل مستند Power Apps.

  المسافة البيضاء:
    فاصل Unicode Space (فئة Zs)
    فاصل Unicode Line (فئة Zl)
    فاصل فقرة Unicode (class Zp)
    حرف علامة التبويب الأفقي (U+0009)
    حرف تغذية السطر (U+000A)
    حرف علامة التبويب الرأسي (U+000B)
    حرف تغذية النموذج (U+000C)
    حرف جديد للنقل (U+000D)
    حرف السطر التالي (U+0085)

التعليقات

يتم دعم نوعين من التعليقات:

  • تعليقات من سطر واحد تبدأ بالحروف // وتمتد لنهاية السطر المصدر.
  • تعليقات مفبركة تبدأ بالحروف /* وتنتهي بالحروف */. يمكن أن تمتد التعليقات المحددة عبر أسطر متعددة.

  تعليق:
    تعليق محدود
    سينجل لاينتعليق

  تعليق مفرد:
    //SingleLineCommentCharactersopt

  SingleLineCommentالشخصيات:
    SingleLineCommentCharacter
    SingleLineCommentCharacterSingleLineCommentCharactersopt

  SingleLineCommentCharacter:
    أي أحرف Unicode باستثناء NewLineCharacter

  تعليق محدد:
    /*محدد التعليقاتالأحرفتختار*/

  محددCommentCharacters:
    محددتعليقالشخصياتلاعلامةالنجمة محدودةتعليقاختيارالشخصيات
    *محددتعليقبعدعلامة النجمةالأحرف

  محددتعليقبعد علامة النجمةالشخصيات:
    DelimitedCommentNoSlashAsteriskCharacterDelimitCommentCharactersopt
    *محددتعليقبعدعلامة النجمةالأحرف

  DelimitedCommentCharacters NoAsterisk:
    أي حرف Unicode باستثناء * (النجمة)

  محدودتعليقNoSlashAsteriskCharacter:
    أي حرف Unicode باستثناء * (النجمة) أو / (الشرطة المائلة)

التعليقات ليست متداخلة. لا تتضمن تسلسلات الأحرف /* و*/ على معنى خاص في تعليق من سطر واحد، وتسلسلات الأحرف // و/* ليس لها معنى خاص في تعليق محدد.

لا تتم معالجة التعليقات ضمن سلاسل نصية حرفية.

يتضمن المثال التالي تعليقين مفتعلين:

/* Hello, world
*/
"Hello, world"    /* This is an example of a text literal */

تتضمن الأمثلة التالية ثلاثة تعليقات من سطر واحد:

// Hello, world
//
"Hello, world"    // This is an example of a text literal

الاحرف

القيمة الحرفية هو تمثيل شفرة المصدر لقيمة.

  حرفي:
    منطقي حرفي
    العددالحرفي
    النصالحرفي

الحالات المنطقية

يتم استخدام قيمة حرفية منطقية لكتابة القيم الصواب والخطأ، وإنتاج قيمة منطقية.

  منطقي حرفي: واحد من
    truefalse

الأرقام المهينة

يتم استخدام قيمة حرفية رقمية لكتابة قيمة رقمية وإنتاج قيمة رقمية.

  الرقمالحرفي:
    عشريالأرقامالأسيجزءاختيار
    عشريالأرقامعشريفاصلعشريالأرقامتختارالأسالجزءالاختياري
    عشريفاصلعشريالأرقامالأسيجزءاختيار

  عشريأرقام:
    عشريرقمالرقم
    عشريالأرقامعشريةعشري

  عشريرقم:واحد من
    0123456789

  الأسجزء:
    الأس علامةالمؤشراختيارعشريالأرقام

  الأس المؤشر: واحد من
    eE

  علامة:واحدة من
    +-

رسائل نصية

يتم استخدام قيمة حرفية نصية لكتابة سلسلة من أحرف Unicode وإنتاج قيمة نصية. يتم وضع النصوص الحرفية بين علامات اقتباس مزدوجة. لتضمين علامات الاقتباس المزدوجة في القيمة النصية، كرر علامات الاقتباس المزدوجة، كما هو موضح في المثال التالي:

"The ""quoted"" text" // The "quoted" text

  النصالحرفي:
    "اختيار TextLiteralCharacters"

  الأحرف الحرفية النصية:
    النصحرفيالحروفالحرفيةاختيار الأحرف

  حرف النص:
    TextCharacterNoDoubleQuote
    دبل كوتيسكيب سيتيليشن

  TextCharacterNoDoubleQuote:
    أي نقطة رمز Unicode باستثناء عرض أسعار مزدوج

  دبل كوتيسكيب سيتيلي:
    ""

Identifiers

المعرف هو اسم يستخدم للإشارة إلى قيمة. قد تكون المعرفات إما معرفات منتظمة أو معرفات مفردة تم اقتباسها.

  المعرف:
    اسمالمعرف ولكنليسعامل التشغيلأوكلمة السياق الرئيسية

  اسم المعرف:
    IdentifierStartCharacterIdentifierContinueCharactersopt
    'سينجلكوتدمعرف'

  IdentifierStartCharacter:
    حرف
    _

  المعرفContinueCharacter:
    IdentifierStartCharacter
    عشريرقمحرف
    ربط الشخصية
    الجمعحرف
    تنسيق حرف

  IdentifierContinueCharacters:
    IdentifierContinueCharacterIdentifierContinueCharactersopt

  حرف الحرف:
    أي حرف Unicode للفئة حرف كبير (Lu) أو حرف صغير (Ll)
    أي حرف Unicode من فئة حرف حالة العنوان (Lt)
    أي حرف Unicode من الفئة معدل الحرف (Lm) أو حرف آخر (Lo)
    أي حرف Unicode من فئة حرف الرقم (Nl)

  الجمع بين الشخصية:
    أي حرف Unicode من الفئة علامة عدم التباعد (Mn) أو علامة الجمع بين المسافات (Mc)

  عشريرقمحرف:
    أي حرف Unicode من الفئة رقم عشري (Nd)

  شخصية الاتصال:
    أي حرف Unicode من الفئة ترقيم الموصل (Pc)

  حرف التنسيق:
    أي حرف Unicode من الفئة تنسيق (Cf)

المعرف الفردي المقتباس

يمكن أن يحتوي معرّف واحد مقتبس على أي تسلسل من أحرف Unicode لاستخدامها كمعرف، بما في ذلك الكلمات الأساسية والمسافات البيضاء والتعليقات والعوامل. يتم دعم أحرف علامة الاقتباس المفردة بتسلسل هروب من علامتي اقتباس مفردتين.

  معرف مفرد:
    سينجلكوبدمعرفالأحرف

  الأحرف المفردة المقتبسة:
    SingleQuotedIdentifierCharacterSingleQuotedIdentifierCharactersopt

  سينجليكتودمعرفحرف:
    TextCharacters NoSingleQuote
    سينجلكوتسكيبسيت

  TextCharacters NoSingleQuote:
    أي حرف Unicode باستثناء ' (U+0027)

  سينجلكوتسيكيب سيتيلي:
    ''

المعرف الواضح

  معرف توضيحي:
    TableColumnIdentifier
    جلوبال ديفيد

  معرف عمود الجدول:
    معرف المعرف[@...]

  المعرف العالمي:
    [@المعرف]

الكلمات الأساسية في السياق

  السياقالكلمة الرئيسية:
    Parent
    Self
    ThisItem
    ThisRecord

‏‫مميِّز لحالة الأحرف‬

تكون المعرفات حساسة حالة التحسس Power Apps. ستقوم أداة التأليف تلقائيًا بتغييرها إلى الحالة الصحيحة عند كتابة الصيغة.

فواصل

  فاصل عشري:
    . (نقطة) للغات التي تستخدم نقطة كفاصل للأرقام العشرية، على سبيل المثال 1.23
    , (فاصلة) للغات التي تستخدم الفاصلة كفاصل للأرقام العشرية، على سبيل المثال 1,23

  فاصل القائمة:
    , (فاصلة) إذا كان الفاصل . العشري (نقطة)
    ; (فاصلة منقوطة) إذا كان الفاصل , العشري (فاصلة)

  فاصل التسلسل:
    ; (فاصلة منقوطة) إذا كان الفاصل . العشري (نقطة)
    ;; (فاصلة منقوطة مزدوجة) إذا كان الفاصل , العشري (فاصلة)

Operators

يتم استخدام عوامل التشغيل في صيغ لوصف العمليات التي تتضمن واحدا أو أكثر من المياة. على سبيل المثال، a + bيستخدم التعبير عامل التشغيل لإضافة المعاملين +a وb.

  المشغل:
    مشغل ثنائي
    ثنائي المشغليتطلب مسافة بيضاء
    البادئةعامل التشغيل
    PrefixOperatorRequiresWhitespace
    عامل التشغيل بوستفيكسال

  عامل التشغيل الثنائي: واحد من
    =<<=>>=<>
    +-*/^
    &
    &&||
    inexactin

  BinaryOperatorRequiresWhitespace:
    Andبيضاء
    Orبيضاء

  بادئة عامل التشغيل:
    !

  البادئةالمشغليتطلب مسافة بيضاء:
    Notبيضاء

  عامل تشغيل بوستفيكس:
    %

عامل تشغيل مرجعي

  المرجععامل التشغيل:واحد من
    .!

مرجع الكائن

  مرجع:
    المرجع الأساسي
    BaseReferenceReferenceOperatorReferenceList

  مرجع القاعدة:
    المعرف
    معرف توضيحي
    السياقالكلمات الرئيسية

  قائمة المراجع:
    المعرف
    مرجع المعرفقائمةمراجع المشغل...

سجل سطر

  سجل مضمن:
    {اختيار InlineRecordList}

  InlineRecordList:
    تعبير المعرف:...
    قائمة تعبيرات:المعرففاصل...InlineRecordList

جدول سطور

  جدول مضمن:
    [InlineTableListopt]

  InlineTableList:
    تعبير
    قائمة التعبيرفاصل...InlineTableList

تعبير

  تعبير:
    حرفي
    مرجع
    سجل مضمن
    جدول مضمن
    وظيفة الاتصال
    (تعبير)
    بادئةتعبير عامل التشغيل...
    التعبيرPostfixOperator
    تعبيرثنائيتعبير عامل التشغيل...

تعبيرات غير مشار لها

  التعبير بالسلاسل:
    تعبير
    تسلسل التعبيرفاصل...ChainedExpressionopt

استدعاء الوظيفة

  وظيفة الاتصال:
    معرف الوظيفة(FunctionArgumentsopt)

  معرف الوظيفة:
    المعرف
    معرف.وظيفةمعرف

  الحجج الوظيفية:
    التعبير المتسلسل
    قائمة التعبيربالتسلسلالدالة الفاصلالحجج...