דקדוק של ביטויים
הערה
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:אחד מתוך
0
1
2
3
4
5
6
7
8
9
מקוצרת ל:
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:אחד מ
true
false
מילולי מספרי
ליטרל מספר משמש לכתיבת ערך מספרי והפקת ערך מספר.
NumberLiteral:
DecimalDigitsExponentPartopt
DecimalDigitsDecimalSeparatorDecimalDigitsoptExponentPartopt
DecimalSeparatorDecimalDigitsExponentPartopt
DecimalDigits:
DecimalDigit
DecimalDigitsDecimalDigit
DecimalDigit:אחד מתוך
0
1
2
3
4
5
6
7
8
9
ExponentPart:
ExponentIndicatorSignoptDecimalDigits
מילולי טקסט
ליטרל טקסט משמש לכתיבת רצף של תווי Unicode ולהפקת ערך טקסט. ליטרלים של טקסט מוקפים במרכאות כפולות. כדי לכלול מרכאות כפולות בערך הטקסט, חזור על המרכאות הכפולות, כפי שמוצג בדוגמה הבאה:
"The ""quoted"" text" // The "quoted" text
TextLiteral:
"
TextLiteralCharactersאופט"
TextLiteralCharacters:
TextLiteralCharacterTextLiteralCharacteropt
TextLiteralCharacter:
TextCharacterNoDoubleQuote
DoubleQuoteEscapeSequence
TextCharacterNoDoubleQuote:
כל נקודת קוד של Unicode למעט מרכאות כפולות
DoubleQuoteEscapeSequence:
"
"
מזהים
מזהה הוא שם המשמש להתייחסות לערך. מזהים יכולים להיות מזהים רגילים או מזהים בודדים עם מרכאות כפולות.
מזהה:
IdentifierNameאבללאמפעילאוContextKeyword
מזהה שם:
IdentifierStartCharacterIdentifierContinueCharactersopt
'
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 מפריד עשרוני הוא .
(נקודה)
;;
(נקודה-פסיק) אם מפריד עשרוני הוא ,
(פסיק)
אופרטורים
אופרטורים משמשים בנוסחאות לתיאור פעולות הכוללות אופרנד אחד או יותר. למשל הביטוי a + b
משתמש באופרטור +
כדי להוסיף את שני האופרנדים a
ו- b
.
מַפעִיל:
BinaryOperator
BinaryOperatorRequiresWhitespace
PrefixOperator
PrefixOperatorRequiresWhitespace
PostfixOperator
BinaryOperator:אחד מ
=
<
<=
>
>=
<>
+
-
*
/
^
&
&&
||
in
exactin
BinaryOperatorRequiresWhitespace:
And
רווח לבן
Or
רווח לבן
PrefixOperatorRequiresWhitespace:
Not
רווח לבן
אופרטור הפניה
הפניה לאובייקט
הַפנָיָה:
BaseReference
BaseReferenceReferenceOperatorReferenceRist
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