שתף באמצעות


דקדוק של ביטויים

הערה

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.

מוסכמות דקדוק

הדקדוקים המילוניים והתחביריים מוצגים באמצעות הפקות דקדוק. כל הפקת דקדוק מגדירה סמל שאינו סופני וההרחבות האפשריות של אותו סמל לא סופני לרצפים של סמלים לא סופניים או סופניים. בהפקות דקדוק, סמלים לא סופניים מוצגים באותיות נטויות וסמלים סופניים מוצגים בגופן ברוחב קבוע.

השורה הראשונה של הפקת דקדוק היא שם הסמל הלא סופני המוגדר, ואחריו נקודתיים. כל שורה מדורגת ברציפות מכילה הרחבה אפשרית של הסמל הלא סופני הניתן כרצף של סמלים לא סופניים או סופניים. לדוגמה, ההפקה:

   GlobalIdentifier:
     [@ מזהה]

מגדיר GlobalIdentifier שיכיל את האסימון [@, שאחריו בא מזהה, ואחריו האסימון ].

כשיש הרחבה אפשרית אחת של סמל שאינו סופני, החלופות מפורטות בשורות נפרדות. הכתב התחתי "opt" משמש לציון סמל אופציונלי. לדוגמה, ההפקה:

   FunctionCall:
     FunctionIdentifier(FunctionArgumentsopt)

מקוצרת ל:

   FunctionCall:
     FunctionIdentifier()
     FunctionIdentifier(FunctionArguments)

החלופות רשומות בדרך כלל בשורות נפרדות, אם כי במקרים שבהם ישנן חלופות רבות, הביטוי "אחת מ-" (one of) עשוי להקדים את רשימת ההרחבות הניתנות בשורה אחת. זה פשוט סגנון קצרני לרישום של כל אחת מהחלופות בשורות נפרדות.

לדוגמה, ההפקה:

   DecimalDigit:אחד מתוך
    0123456789

מקוצרת ל:

   DecimalDigit:
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9

ניתוח מילוני

הפקת היחידות המילוניות מגדירה את הדקדוק המילוני לביטוי של Power Fx. כל ביטוי תקף של Power Fx תואם לדקדוק זה.

   ExpressionUnit:
     ExpressionElementsאופט

   ExpressionElements:
     ExpressionElement
     ExpressionElementExpressionElementsopt

   ExpressionElement:
     רווח לבן
     הֶעָרָה

ברמה המילונית, ביטוי של Power Fx מורכב מזרם של רכיבי רווח לבן, הערה ואסימוֹן. כל אחת מההפקות הללו מכוסה בסעיפים הבאים. רק רכיבי האסימוֹן משמעותיים בדקדוק התחבירי.

רווח לבן

רווח לבן משמש להפרדת הערות ואסימונים בתוך מסמך Power Apps.

   רווח לבן:
    כל מפריד שטח של Unicode (מחלקה Zs)
    כל מפריד שטח של Unicode (מחלקה Zl)
    כל מפריד פסקאות של Unicode (מחלקה Zp)
    תו טאב אופקי (U + 0009)
    תו הזנת קו (U + 000A)
    תו טאב אנכי (U+000B)
    תו הזנת טופס (U + 000C)
    תו החזרת גררה (U + 000D)
    תו השורה הבאה (U+0085)

הערות

שתי צורות של הערות נתמכות:

  • הערות בשורה אחת שמתחילות בתווים // ונמשכות עד סוף שורת המקור.
  • הערות מופרדות שמתחילות בתווים /* ומסתיימות בתווים */. הערות מופרדות יכולות להתפרס על גבי מספר שורות.

   תגובה:
     תגובה מופרדת
     SingleLineComment

   SingleLineComment:
     // SingleLineCommentCharactersopt

   SingleLineComment Characters:
     SingleLineCommentCharacter
     SingleLineCommentCharacterSingleLineCommentCharacteropt

   SingleLineComment Character:
    כל תווי Unicode למעט NewLineCharacter

   DelimitedComment:
     /* DelimitedComment Charactersopt*/

   DelimitedComment Characters:
     DelimitedCommentCharactersNoAsteriskDelimitedCommentCharactersopt
     * מופרד הערה לאחר כוכבית תווים

   מופרד הערה לאחר כוכבית תווים:
     DelimitedCommentNoSlashAsteriskCharacterDelimitedCommentCharactersopt
     * מופרד הערה לאחר כוכבית תווים

   מופרד הערה תווים אין כוכבית:
    כל תו של Unicode למעט * (כוכבית)

   DelimitedCommentNoSlashAsteriskCharacter:
    כל תו של 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

מילוליות

ליטרל הוא ייצוג קוד המקור של ערך.

   מילולי:
     LogicalLiteral
     NumberLiteral
     TextLiteral

מילולי לוגי

ליטרל לוגי משמש לכתיבת הערכים 'נכון' ו'לא נכון', והפקת ערך לוגי.

   LogicalLiteral:אחד מ
    truefalse

מילולי מספרי

ליטרל מספר משמש לכתיבת ערך מספרי והפקת ערך מספר.

   NumberLiteral:
     DecimalDigitsExponentPartopt
     DecimalDigitsDecimalSeparatorDecimalDigitsoptExponentPartopt
     DecimalSeparatorDecimalDigitsExponentPartopt

   DecimalDigits:
     DecimalDigit
     DecimalDigitsDecimalDigit

   DecimalDigit:אחד מתוך
    0123456789

   ExponentPart:
     ExponentIndicatorSignoptDecimalDigits

   ExponentIndicator:אחד מ
    eE

   חתום:אחד מ
    +-

מילולי טקסט

ליטרל טקסט משמש לכתיבת רצף של תווי Unicode ולהפקת ערך טקסט. ליטרלים של טקסט מוקפים במרכאות כפולות. כדי לכלול מרכאות כפולות בערך הטקסט, חזור על המרכאות הכפולות, כפי שמוצג בדוגמה הבאה:

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

   TextLiteral:
     " TextLiteralCharactersאופט"

   TextLiteralCharacters:
     TextLiteralCharacterTextLiteralCharactersopt

   TextLiteralCharacter:
     TextCharacterNoDoubleQuote
     DoubleQuoteEscapeSequence

   TextCharacterNoDoubleQuote:
    כל נקודת קוד של Unicode למעט מרכאות כפולות

   DoubleQuoteEscapeSequence:
    ""

מזהים

מזהה הוא שם המשמש להתייחסות לערך. מזהים יכולים להיות מזהים רגילים או מזהים בודדים עם מרכאות כפולות.

   מזהה:
     IdentifierNameאבללאמפעילאוContextKeyword

   מזהה שם:
     IdentifierStartCharacterIdentifierContinueCharacteropt
     ' SingleQuotedIdentifier'

   IdentifierStartCharacter:
     אותיות אותיות
    _

   IdentifierContinueCharacter:
     IdentifierStartCharacter
     DecimalDigitCharacter
     אופי מחבר
     שילוב אופי
     עיצוב תו

   IdentifierContinueCharacters:
     IdentifierContinueCharacterIdentifierContinueCharactersopt

   LetterCharacter:
    כל תו Unicode של המחלקה אות גדולה (Lu) או אות קטנה (Ll)
    כל תו Unicode של המחלקה אות Titlecase‏ (Lt)
    כל תו Unicode של המחלקה משנה אות (Lm) או אות אחר (Lo)
    כל תו Unicode של המחלקה אות מספר ‏(Nl)

   CombiningCharacter:
    כל תו Unicode של המחלקה סימן שאינו מרווח (Mn) או סימן שילוב מרווח (Mc)

   DecimalDigitCharacter:
    כל תו Unicode של המחלקה ספרה עשרונית (Nd)

   חיבור דמות:
    כל תו Unicode של המחלקה פיסוק מחבר (Pc)

   עיצוב תו:
    כל תו Unicode של המחלקה תבנית (Cf)

מזהים של גרשיים

מזהה מצוטט יחיד יכול להכיל כל רצף של תווי Unicode שישמשו כמזהה, כולל מילות מפתח, רווח לבן, הערות ומפעילים. תווי מרכאות בודדות נתמכים ברצף בריחה של שני מרכאות בודדות.

   SingleQuotedIdentifier:
     SingleQuotedIdentifier Characters

   SingleQuotedIdentifier Characters:
     SingleQuotedIdentifierCharacterSingleQuotedIdentifierCharacteropt

   SingleQuotedIdentifierCharacter:
     TextCharactersNoSingleQuote
     SingleQuoteEscapeSequence

   TextCharactersNoSingleQuote:
    כל תו של Unicode למעט ' (U+0027)

   SingleQuoteEscapeSequence:
    ''

מזהה מובהר

   מזהה disambiguated:
     TableColumnIdentifier
     GlobalIdentifier

   TableColumnIdentifier:
     מזהה[@מזהה]

   GlobalIdentifier:
     [@ מזהה]

מילות מפתח בהקשר

   מילת מפתח בהקשר:
    Parent
    Self
    ThisItem
    ThisRecord

תלות ברישיות

המזהים של Power Apps תלויים ברישיות. כלי המחבר ישנה אותם באופן אוטומטי לגודל הנכון בעת כתיבת נוסחה.

מפרידים

   מפריד עשרוני:
     . (נקודה) עבור שפות המשתמשות בנקודה כמפריד למספרים עשרוניים, למשל 1.23
     , (פסיק) עבור שפות המשתמשות בפסיק כמפריד למספרים עשרוניים, למשל 1,23

   מפריד רשימה:
     , (פסיק) if DecimalSeparator הוא . (נקודה)
     ; (נקודה-פסיק) if DecimalSeparator הוא , (פסיק)

   מפריד שרשרת:
     ; (נקודה-פסיק) if DecimalSeparator הוא . (נקודה)
     ;; (נקודה-פסיק) אם מפריד עשרוני הוא , (פסיק)

אופרטורים

אופרטורים משמשים בנוסחאות לתיאור פעולות הכוללות אופרנד אחד או יותר. למשל הביטוי a + b משתמש באופרטור + כדי להוסיף את שני האופרנדים a ו- b.

   מַפעִיל:
     BinaryOperator
     BinaryOperatorRequiresWhitespace
     PrefixOperator
     PrefixOperatorRequiresWhitespace
     PostfixOperator

   BinaryOperator:אחד מ
    =<<=>>=<>
    +-*/^
    &
    &&||
    inexactin

   BinaryOperatorRequiresWhitespace:
     And רווח לבן
     Or רווח לבן

   PrefixOperator:
    !

   PrefixOperatorRequiresWhitespace:
     Not רווח לבן

   PostfixOperator:
    %

אופרטור הפניה

   ReferenceOperator:אחד מ
    .!

הפניה לאובייקט

   הַפנָיָה:
     BaseReference
     BaseReferenceReferenceOperatorReferenceList

   BaseReference:
     מזהה
     מזהה מעורפל
     מילת מפתח בהקשר

   רשימת הפניות:
     מזהה
     מזההReferenceOperatorReferenceRist

רשומה מוטבעת

   InlineRecord:
     { InlineRecordListopt}

   InlineRecord List:
     מזהה:ביטוי
     מזהה:ביטויListSeparatorInlineRecordList

טבלה מוטבעת

   טבלה מוטבעת:
     [ InlineTableListאופט]

   InlineTable List:
     הַבָּעָה
     ביטויListSeparatorInlineTableList

Expression

   הַבָּעָה:
     מילולית
     הַפנָיָה
     InlineRecord
     טבלה מוטבעת
     FunctionCall
     ( הַבָּעָה)
     PrefixOperatorביטוי
     ExpressionPostfixOperator
     ביטויBinaryOperatorביטוי

ביטויים משורשרים

   ChainedExpression:
     הַבָּעָה
     ExpressionChainingSeparatorChainedExpressionopt

שיחת פונקציה

   FunctionCall:
     FunctionIdentifier(FunctionArgumentsopt)

   FunctionIdentifier:
     מזהה
     מזהה.FunctionIdentifier

   ארגומנטים של פונקציה:
     ChainedExpression
     ChainedExpressionListSeparatorArguments Function