Izteiksmes gramatika
Piezīmes
Microsoft Power Fx ir pamatnes programmu formulas valodas jaunais nosaukums. Šie raksti darbojas, kad izvelk valodu no pamatnes programmām, integrējot to ar citiem Microsoft Power Platform produktiem un padarām to pieejamu kā atvērtu avotu. Sāciet ar Microsoft Power Fx pārskatu par valodas ievadu.
Microsoft Power Fx ir balstīts uz formulām, kas vārdam ļauj izteikties. Tāpat kā Excel darblapās kā ienākošās izteiksmes izmaiņu atkarības, izteiksme tiek pārrēķināta un nosaukuma vērtība tiek mainīta, iespējams, kaskadējot pārrēķinu citās formulās.
Šī gramatika aptver formulas izteiksmes daļu. Saistīšana ar vārdu, lai izveidotu formulu, ir atkarīga no tā, kā Power Fx ir integrēts. Darblapās saistīšanas sintakse netiek atklāta, un to norāda, piemēram, atrašanās vieta, kur šī izteiksme tiek uzrakstīta, piemēram, ievadot =B1
A1 šūnā . Dažos gadījumos ne vienmēr ir nepieciešama saistīšana, bet Power Fx tiek izmantots kā izteiksmes vērtētājs, piemēram, lai atbalstītu aprēķinātās datu bāzes tabulas kolonnas. Attiecībā uz Power Apps, saistība tiek norādīta, strādājot ar Power Apps Studio serializācijas formātu, kura pamatā ir YAML lietošanai ārpus Power Apps Studio.
Gramatikas konvencijas
Leksisko un sintaktisko gramatiku ataino gramatikas veidu izmantošana. Katrs gramatikas likums definē nenoteiktu simbolu un šī nenoteiktā simbola iespējamos paplašinājumus nenoteiktu vai noteiktu simbolu secībās. Gramatikas likumos nenoteiktie simboli tiek rādīti slīprakstā, un noteiktie simboli tiek rādīti fiksēta platuma fontā.
Pirmajā gramatikas likuma rindā ir nenoteiktā simbola nosaukums, kas tiek definēts un aizstāts ar kolu. Katrā rindā ar atkāpēm, ir iespējama simbola paplašināšana bez termināļa, kas norādīta kā ar termināļa vai termināļa nesaistīto simbolu secība. Piemēram, likums:
GlobalIdentifier:
[@
Identifikators]
definē GlobalIdentifier, kas sastāv no marķiera [@
, kam seko Identifikators, aiz kura norādīts marķieris ]
.
Ja ir vairāk nekā viena iespējama nenoteikta simbola paplašināšana, alternatīvas tiek uzskaitītas atsevišķās rindās. Apakšraksts "opt" tiek izmantots, lai norādītu neobligātu simbolu. Piemēram, likums:
FunctionCall:
FunctionIdentifier(
FunctionArgumentsopt)
ir saīsinājums:
FunctionCall:
FunkcijasIdentifikators(
)
FunctionIdentifier(
FunctionArguments)
Alternatīvas parasti tiek uzskaitītas atsevišķas rindās, tomēr gadījumos, kad ir daudzas alternatīvas, tad frāzi "viena no" var ievadīt pirms vienā rindā sniegtā apļa saraksta. Tas ir vienkārši saīsinājums attiecībā uz katru alternatīvu atsevišķas līnijas.
Piemēram, likums:
DecimalDigit:viens no
0
1
2
3
4
5
6
7
8
9
ir saīsinājums:
DecimalDigit:
0
1
2
3
4
5
6
7
8
9
Leksikas analīze
Leksiskās vienības likums nosaka Power Fx izteiksmes leksisko gramatiku. Katra derīga Power Fx izteiksme atbilst šai gramatikas vienībai.
Izteiksmes vienība:
ExpressionElementsizvēle
Izteiksmes elementi:
ExpressionElement
ExpressionElementExpressionElementsizvēlēties
IzteiksmeElements:
Baltstarpu
Komentārs
Leksikas ziņā Power Fx izteiksme sastāv no Baltstarpas, Komentāra un Marķiera straumes elementiem. Katrs no šiem likumiem ir ietverts nākamajās sadaļās. Sintaktiskajā gramatikā nozīmīgi ir tikai Marķiera elementi.
Baltstarpa
Baltstarpa tiek izmantota, lai Power Apps dokumentā atdalītu komentārus un marķierus.
Baltā atstarpe:
jebkurš Unicode atstarpes atdalītājs (klase Zs)
jebkurš Unicode līnijas atdalītājs (klase ZI)
jebkurš Unicode rindkopas atdalītājs (klase Zp)
Horizontāla cilnes rakstzīme (U+0009)
Rindpadeves rakstzīme (U+000A)
Vertikāla cilnes rakstzīme (U+000B)
Formas plūsmas rakstzīme (U+000C)
Rakstatgriezes rakstzīme (U+000D)
Nākamās līnijas rakstzīme (U+0085)
Komentāri
Tiek atbalstītas divas komentāru formas:
- Vienas rindiņas komentāri, kas sākas ar rakstzīmēm
//
un tiek paplašināti līdz avota rindas beigām. - Norobežoti komentāri, kas sākas ar rakstzīmēm
/*
un beidzas ar rakstzīmēm*/
. Neierobežoti komentāri var ietvert vairākas rindiņas.
Komentārs:
DelimitedComment
SingleLineComment
SingleLineComment:
//
SingleLineCommentCharactersizvēlēties
SingleLineCommentCharacters:
SingleLineCommentCharacter
SingleLineCommentCharacterSingleLineCommentCharactersizvēlēties
SingleLineCommentCharacter:
jebkura Unicode rakstzīme, izņemot NewLineCharacter
NorobežotsKomentārs:
/*
DelimitedCommentCharactersizvēlēties*/
DelimitedCommentCharacters:
DelimitedCommentCharactersNoAsteriskDelimitedCommentCharactersizvēlēties
*
DelimitedCommentAfterAsteriskCharacters
DelimitedCommentAfterAsteriskCharacters:
DelimitedCommentNoSlashAsteriskCharacterDelimitedCommentCharactersizvēlēties
*
DelimitedCommentAfterAsteriskCharacters
DelimitedCommentCharactersNoAsterisk:
jebkura Unicode rakstzīme, izņemot * (zvaigznīte)
DelimitedCommentNoSlashAsteriskCharacter:
jebkura Unicode rakstzīme, izņemot / (slīpsvītra) vai * (zvaigznīte)
Komentāri nav ligzdoti. Rakstzīmju secībām /*
un */
nav īpašas jēgas vienas rindas komentārā, un rakstzīmju secībām //
un /*
nav īpašas jēgas neierobežoā komentārā.
Komentāri netiek apstrādāti tekstam sādāmās virknes ar tekstu.
Šajā piemērā ir iekļauti divi norobežoti komentāri:
/* Hello, world
*/
"Hello, world" /* This is an example of a text literal */
Tālāk sniegtajos piemēros ir trīs vienas rindiņas komentāri:
// Hello, world
//
"Hello, world" // This is an example of a text literal
Literāļi
Literālis ir vērtības avota koda attēlojums.
Burtiski:
LoģiskaisLiterāls
NumberLiteral
TextLiteral
Loģiskie literāļi
Loģisks literālis tiek izmantots, lai rakstītu vērtības patiess un nepatiess, un rada loģisku vērtību.
LoģiskaisLiterāls:viens no
true
false
Skaitliski literāļi
Skaitliskais literālis tiek izmantots skaitļa vērtības rakstīsanai un izveidei.
NumberLiteral:
DecimalDigitsExponentPartizvēlēties
DecimalDigitsDecimalSeparatorDecimalDigitsizvēlētiesExponentPartopt
DecimalSeparatorDecimalDigitsExponentPartopt
DecimalDigits:
DecimalDigit
DecimalDigitsDecimalDigit
DecimalDigit:viens no
0
1
2
3
4
5
6
7
8
9
ExponentPart:
ExponentIndicatorSignoptDecimalDigits
ExponentIndicator:viens no
e
E
Teksta literāļi
Teksta literālis tiek izmantots, lai rakstītu unikoda rakstzīmju secību un iegūtu teksta vērtību. Teksta literāļi ir ietverti pēdiņās. Lai teksta vērtībā iekļautu pēdiņas, atkārtojiet pēdiņas, kā parādīts šajā piemērā:
"The ""quoted"" text" // The "quoted" text
TextLiteral:
"
TextLiteralCharactersizvēlēties"
TextLiteralCharacters:
TextLiteralCharacterTextLiteralCharactersizvēlēties
TextLiteralCharacter:
TextCharacterNoDoubleQuote
DoubleQuoteEscapeSequence
TextCharacterNoDoubleQuote:
jebkuru Unicode koda punktu, izņemot pēdiņas
DoubleQuoteEscapeSequence:
"
"
Identifikatori
Identifikators ir nosaukums, ko izmanto, lai atsauktos uz kādu vērtību. Identifikatori var būt parastie identifikatori vai atsevišķi citētie identifikatori.
Identifikators:
IdentifierName,betneOperatorsvaiContextKeyword
IdentifikatoraNosaukums:
IdentifierStartCharacterIdentifierContinueCharactersopt
'
SingleQuotedIdentifier'
IdentifierStartCharacter:
LetterCharacter
_
IdentifierContinueCharacter:
IdentifierStartCharacter
DecimalDigitCharacter
ConnectingCharacter
ApvienošanaRaksturs
FormattingCharacter
IdentifierContinueCharacters:
IdentifierContinueCharacterIdentifierContinueCharactersizvēlēties
LetterCharacter:
jebkura unikoda rakstzīme no klases Lielie burti (Lu) vai Mazie burti (LI)
jebkura Unicode rakstzīme no klases Virsraksta burti (Lt)
jebkura unikoda rakstzīme no klases Burtu mainītājs (Lm) vai Citi burti (Lo)
jebkura Unicode rakstzīme no klases Skaitļa burts (NI)
KombinējotRaksturu:
jebkura unikoda rakstzīme no klases Ar atstarpēm nesaistītās zīmes (Mn) vai Atstarpes, kas savieno zīmi (Mc)
DecimalDigitCharacter:
jebkura unikoda rakstzīme no klases Decimālskaitlis (Nd)
ConnectingCharacter:
jebkura unikoda rakstzīme no klases Savienotāju pieturzīmes (Pc)
FormatējumsRaksturs:
jebkura unikoda rakstzīme no klases Formāts (Cf)
Atsevišķi citēti identifikatori
Atsevišķam kotētam identifikatoram var būt jebkura unikoda rakstzīmju sērija, kas jāizmanto kā identifikators, tostarp atslēgvārdi, baltstarpa, komentāri un operatori. Vienpēdiņas rakstzīmes tiek atbalstītas ar divu vienpēdiņu secības aizsedzi.
SingleQuotedIdentifier:
SingleQuotedIdentifierCharacters
SingleQuotedIdentifierCharacters:
SingleQuotedIdentifierCharacterSingleQuotedIdentifierCharactersizvēlēties
SingleQuotedIdentifierCharacter:
TextCharactersNoSingleQuote
SingleQuoteEscapeSequence
TextCharactersNoSingleQuote:
jebkura Unicode rakstzīme, izņemot ' (U+0027)
SingleQuoteEscapeSequence:
'
'
Viennozīmīgs identifikators
Neskaidrsidentifikators:
TableColumnIdentifier
GlobalIdentifier
TableColumnIdentifier:
Identifikatora[@
identifikators]
GlobalIdentifier:
[@
Identifikators]
Konteksta atslēgvārdi
Konteksta atslēgvārds:
Parent
Self
ThisItem
ThisRecord
Reģistrjutīgums
Power Apps identifikatori ir reģistrjutīgi. Autorēšanas rīks automātiski mainīs tos uz pareizo pieteikumu, kad tiek rakstīta formula.
Atdalītāji
Decimāldaļas atdalītājs:
.
(dot) valodām, kurās kā decimālskaitļu atdalītājs tiek izmantots punkts, piemēram, 1.23
,
(komats) valodām, kurās decimālskaitļu atdalītājs tiek izmantots, piemēram, komats 1,23
ListSeparator:
,
(komats), ja DecimalSeparator ir .
(dot)
;
(semikols), ja DecimalSeparator ir ,
(komats)
ChainingSeparator:
;
(semikols), ja DecimāldaļaSeparators ir .
(punkts)
;;
(dubultais semikols), ja Decimāldaļas atdalītājs ir ,
(komats)
Operatori
Operatori tiek lietoti formulās, lai aprakstītu darbības, kurās iesaistīts viens vai vairāki operandi. Piemēram, izteiksme a + b
izmanto +
operatoru, lai pievienotu divus operandus a
un b
.
Operatora:
BinaryOperator
BinaryOperatorRequiresWhitespace
PrefikssOperators
PrefixOperatorRequiresWhitespace
PostfixOperator
BinaryOperator:viens no
=
<
<=
>
>=
<>
+
-
*
/
^
&
&&
||
in
exactin
BinaryOperatorRequiresWhitespace:
And
Baltstarpu
Or
Baltstarpu
PrefixOperatorRequiresWhitespace:
Not
Baltstarpu
Atsauces operators
ReferenceOperator:viens no
.
!
Objekta atsauce
Atsauce:
BaseReference
BaseReferenceReferenceOperatorReferenceList
Bāzes atsauce:
Identifikators
NeskaidrsIdentifikators
Kontekstaatslēgvārds
Atsauču saraksts:
Identifikators
IdentifikatorsReferenceOperatorReferenceList
Iekļauts ieraksts
InlineRecord:
{
InlineRecordListopt}
InlineRecordList:
Identifikatora:
izteiksme
Identifikatora:
izteiksmjusarakstsSeparatorInlineRecordList
Iekļauta tabula
InlineTable:
[
InlineTableListizvēlēties]
InlineTableList:
Izteiksme
IzteiksmjusarakstsSeparatorInlineTableList
Expression
Izteiksme:
Literāļu
Atsauce
InlineRecord
InlineTable
FunctionCall
(
Izteiksme)
PrefiksaOperatoraizteiksme
IzteiksmePostfixOperator
IzteiksmeBinaryOperatorizteiksme
Ķēdes izteicieni
ChainedExpression:
Izteiksme
IzteiksmeChainingSeparatorChainedExpressionopt
Funkcijas zvans
FunctionCall:
FunctionIdentifier(
FunctionArgumentsopt)
Funkcijas identifikators:
Identifikators
Identifikators.
FunctionIdentifier
FunkcijasArgumenti:
ChainedExpression
ChainedExpressionListSeparatorFunctionArguments