Märkus.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida sisse logida või kausta vahetada.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida kausta vahetada.
Märkus.
Microsoft Power Fx on lõuendirakenduste valemikeele uus nimi. Need artiklid on pooleli töö, kuna ekstraktime keele lõuendirakendustest, integreerime selle teiste Microsoft Power Platform toodetega ja teeme selle kättesaadavaks avatud allikana. Alustage Microsoft Power Fx ülevaatega sissejuhatuseks keelde.
Microsoft Power Fx põhineb valemitel, mis lisavad avaldisele nime. Nagu Ka Exceli töölehed, muutub ka avaldise sissetulev sõltuvus, nii et väljend arvutatakse ümber ja nime väärtus muutub, võib-olla kaskadeeritakse ümberarvutamine teistesse valemitesse.
See grammatika hõlmab valemi avaldise osa. Nime sidumine valemi loomiseks sõltub sellest, kuidas Power Fx on integreeritud. Töölehel ei näidata süntaksit, sellele vihjab asukoht, kus avaldis on kirjutatud – näiteks sisestades A1 lahtrisse koodi =B1. Mõnel juhul pole sidumist üldse vaja ja Power Fx-i kasutatakse avaldise hindajana, näiteks andmebaasitabeli arvutatud veergude toetamisel. Rakenduse Power Appsi puhul eeldatakse vaikimisi sidumist, et töötatakse Power Apps Studio koos serialiseerimisvormingus YAMLi kasutamiseks väljapool Power Apps Studio.
Grammatikareeglid
Leksikaalsed ja süntaktilised grammatikad esitatakse grammatikaprogrammide abil. Iga grammatikareegel määratleb mitteterminaalse sümboli ja selle mitteterminaalse sümboli võimalikud laiendused mitteterminaalsete või terminaalsete sümbolite järjestustesse. Grammatikareeglites kuvatakse mitteterminaalsed sümbolid kursiivkirjas ja terminaalsed sümbolid fikseeritud laiusega fondis.
Grammatikareegli esimene rida on määratletava mitteterminaalse sümboli nimi, millele järgneb koolon. Iga järjestikune taandatud rida sisaldab mitteterminaalse sümboli võimalikku laiendamist, mis on antud mitteterminaalsete või terminaliliste sümbolite jadana. Näiteks reegel:
GlobalIdentifier:
[@
Identifikaator]
määratleb Globaalidentifikaatorit, mis koosneb sõnest [@, millele järgneb identifikaator, millele omakorda järgneb sõne ].
Kui mitteterminaalse sümboli laiendamiseks on rohkem kui üks võimalus, on alternatiivid loetletud eraldi ridadel. Valikuliste sümbolite tähistamiseks kasutatakse alamskripti "opt". Näiteks reegel:
FunctionCall:
FunctionIdentifier(FunctionArguments opt)
on lühendatud versioon järgmisest:
FunctionCall:
Funktsiooni identifikaator()
FunctionIdentifier(FunctionArguments)
Alternatiivid lisatakse tavaliselt eraldi ridadele, ehkki juhtudel, kui on palju alternatiive, võib fraas "üks" eelistada ühel real toodud laienduste loendit. See on lihtsalt lühidalt, kui soovite iga alternatiivi eraldi ridadeks loetleda.
Näiteks reegel:
DecimalDigit:üks järgmistest
0 1 2 3 4 5 6 7 8 9
on lühendatud versioon järgmisest:
KümnendkohtDigit:
0
1
2
3
4
5
6
7
8
9
Leksikaalne analüüs
Leksikaalse ühiku reegel määratleb Power Fx-i avaldise leksika. Kõik kehtivad Power Fx-i avaldised vastavad sellele.
ExpressionUnit:
ExpressionElementsopt
Avaldise elemendid:
ExpressionElement
ExpressionElementExpressionElementsopt
ExpressionElement:
Tühik
Kommentaar
Leksikaalsel tasandil koosneb Power Fx-i avaldis elementidest tühik, kommentaar ja tõend. Kõik need reeglid kehtivad järgmiste jaotiste korral. Süntaksi korral on olulised ainult sõne elemendid.
Tühi ruum
Tühikut kasutatakse kommentaaride ja märkide eraldamiseks Power Appsi dokumendis.
Tühik:
mis tahes Unicode'i tühikeraldaja (klass Zs)
mis tahes Unicode'i jooneraldaja (klass ZI)
mis tahes Unicode'i lõigueraldaja (klass Zp)
Horisontaalne tabeldusmärk (U+0009)
Reavahetusmärk (U+000A)
Vertikaalne tabeldusmärk (U+000B)
Lehevahetusmärk (U+000C)
Tagasijooksumärk (U+000D)
Järgmine reavahetusmärk (U+0085)
Kommentaarid
Toetatakse kahte kommentaarivormi.
- Üherealised kommentaarid, mis algavad märkidega
//ja pole pikemad kui allikarida. - Eraldatud kommentaarid, mis algavad märkidega
/*ja lõpevad märkidega*/. Eraldajatega kommentaarid võivad hõlmata mitut rida.
Kommentaar:
PiiritletudKommentaar
SingleLineComment
SingleLineComment:
//
SingleLineCommentCharactersvalib
SingleLineCommentCharacters:
SingleLineCommentCharacter
SingleLineCommentCharacterSingleLineCommentCharactersopt
SingleLineCommentCharacter:
mis tahes Unicode'i märgid, v.a NewLineCharacter
PiiritletudKommentaar:
/*
DelimitedCommentCharactersopt*/
DeboundCommentCharacters:
DelimitedCommentCharactersNoAsteriskDelimitedCommentCharactersopt
*
DelimitedCommentAfterAsteriskCharacters
DelimitedCommentAfterAsteriskCharacters:
DelimitedCommentNoSlashAsteriskCharacterDelimitedCommentCharactersopt
*
DelimitedCommentAfterAsteriskCharacters
DelimitedCommentCharactersNoAsterisk:
mis tahes Unicode'i märk, v.a * (tärn)
DelimitedCommentNoSlashAsteriskCharacter:
mis tahes Unicode'i märk, v.a / (kaldkriips) või * (tärn)
Kommentaare ei pesastata. Märgijadadel /* ja */ pole üherealises kommentaaris erilist tähendust ning märgijadadel // ja /* ei ole eraldatud kommentaaris erilist tähendust.
Kommentaare ei töödelda tekstiliteraalide stringides.
Järgmine näide sisaldab kahte eraldatud kommentaari.
/* Hello, world
*/
"Hello, world" /* This is an example of a text literal */
Järgmised näited sisaldavad kolme üherealist kommentaari.
// Hello, world
//
"Hello, world" // This is an example of a text literal
Literaalid
Literaal on väärtuse esitus lähtekoodina.
Sõnasõnaline:
LoogilineLiteraalne
NumberLiteral
TextLiteral
Loogilised literaalid
Loogikaliteraali abil kirjutatakse väärtused tõesed ja väärad ning need annavad loogikaväärtuse.
LoogilineLiteraalne:üks järgmistest
true false
Arvliteraal
Numbriliteraali kirjutamiseks ja numbriväärtuse kirjutamiseks ja arvuväärtuse toomiseks.
NumberLiteral:
DecimalDigitsExponentPartopt
DecimalDigitsDecimalSeparatorDecimalDigitsoptExponentPartopt
DecimalSeparatorDecimalDigitsExponentPartopt
Kümnendkohad:
KümnendkohtDigit
DecimalDigitsDecimalDigit
DecimalDigit:üks järgmistest
0 1 2 3 4 5 6 7 8 9
Eksponentosa:
ExponentIndicatorSignoptDecimalDigits
ExponentIndicator:üks järgmistest
e E
Tekstliteraalid
Tekstiliteraalid kasutatakse Unicode'i märkide jada kirjutamiseks ning tekstiväärtuse andmiseks. Tekstiliteraalid on lisasõnad kahekordsetes jutumärkides. Kahekordsete jutumärkide kaasamiseks tekstiväärtusse korrake kahekordseid jutumärke, nagu on näidatud järgmises näites:
"The ""quoted"" text" // The "quoted" text
Tekstiliteral:
"
TextLiteralCharactersopt"
TextLiteralCharacters:
TextLiteralCharacterTextLiteralCharactersopt
TextLiteralCharacter:
TextCharacterNoDoubleQuote
DoubleQuoteEscapeSequence
TextCharacterNoDoubleQuote:
mis tahes Unicode'i koodipunkt, v.a kahekordsed jutumärgid
DoubleQuoteEscapeSequence:
" "
Identifikaatorid
Identifikaator on nimi, mida kasutatakse väärtusele viitamiseks. Identifikaatorid võivad olla kas tavalised identifikaatorid või üksikjutumärkidega ümbritsetud identifikaatorid.
Identifikaator:
Identifikaatori nimi,kuidmittetehtemärkegakontekstimärksõna
Identifikaatori nimi:
IdentifierStartCharacterIdentifierContinueCharactersopt
'
SingleQuotedIdentifier'
IdentifikaatorStartCharacter:
LetterCharacter
_
IdentifierContinueCharacter:
IdentifierStartCharacter
DecimalDigitCharacter
ÜhendamineCharacter
CombiningCharacter
FormattingCharacter
IdentifierContinueCharacters:
IdentifierContinueCharacterIdentifierContinueCharactersopt
LetterCharacter:
mis tahes Unicode'i tähistus klassist Suurtäht (Lu) või Väiketäht (Ll)
mis tahes Unicode'i tähistus klassist Suurtäht (Lt)
mis tahes Unicode'i tähistus klassist Tähe muutja (Lm) või Teine täht (Lo)
mis tahes Unicode'i tähistus klassist Numbri märk (Nl)
CombiningCharacter:
mis tahes Unicode'i tähistus klassist Vaheta märk (Mn) või Vahede kombineerimismärk (Mc)
DecimalDigitCharacter:
mis tahes Unicode'i tähistus klassist Kümnendkoht (Nd)
ÜhendamineCharacter:
mis tahes Unicode'i tähistus klassist Ühendav kirjavahemärk (Pc)
FormattingCharacter:
mis tahes Unicode'i tähistus klassist Vorming (Cf)
Üksikjutumärkidega ümbritsetud identifikaatorid
Üks tsiteeritud identifikaator võib sisaldada identifikaatorina mis tahes märksõnu sealgulgas tühikuid, kommentaare ja tehtemärke. Ühekordseid jutumärke toetatakse kahest ühekordsest jutumärgist koosneva järjestusega.
SingleQuotedIdentifier:
SingleQuotedIdentifierCharacters
SingleQuotedIdentifierCharacters:
SingleQuotedIdentifierCharacterSingleQuotedIdentifierCharactersopt
SingleQuotedIdentifierCharacter:
TextCharactersNoSingleQuote
SingleQuoteEscapeSequence
TextCharactersNoSingleQuote:
mis tahes Unicode'i märk, v.a ' (U+0027)
SingleQuoteEscapeSequence:
' '
Ühestamise identifikaator
Ebaselgeidentifikaator:
TableColumnIdentifier
GlobalIdentifier
TableColumnIdentifier:
Identifikaatori[@identifikaator]
GlobalIdentifier:
[@
Identifikaator]
Kontekstimärksõnad
ContextKeyword:
Parent
Self
ThisItem
ThisRecord
Tõstutundlikkus
Power Appsi identifikaatorid on tõstutundlikud. Autorite loomise tööriist muudab need valemi kirjutatud ajal automaatselt õigeks.
Eraldajad
Kümnendkohtade eraldaja:
. (punkt) keelte puhul, mis kasutavad punkti kümnendarvude eraldajana, näiteks 1.23
, (koma) keelte puhul, mis kasutavad kümnendarvude eraldajana koma, näiteks 1,23
Loendiseparaator:
, (koma) kui decimalSeparator on . (punkt)
; (semikoolon) kui kümnendSeparaator on , (koma)
ChainingSeparator:
; (semikoolon), kui DecimalSeparator on . (punkt)
;; (kahekordne semikoolon), kui kümnendSeparaator on , (koma)
Tehtemärgid
Tehtemärke kasutatakse valemites ühe või mitme operandiga seotud toimingute kirjeldamiseks. Näiteks kasutab avaldis a + b tehtemärki + kahe operandi a ja b lisamiseks.
Operaator:
Binaarneoperaator
BinaryOperatorRequiresWhitespace
PrefixOperator
PrefixOperatorRequiresWhitespace
PostfixOperator
BinaryOperator:üks neist
= < <= > >= <>
+ - * / ^
&
&& ||
in exactin
BinaryOperatorRequiresWhitespace:
And
Tühik
Or
Tühik
PrefixOperatorRequiresWhitespace:
Not
Tühik
Viite tehtemärk
ReferenceOperator:üks järgmistest
. !
Objekti viide
Viide:
BaseReference
BaseReferenceReferenceOperator ReferenceList...
BaseReference:
Identifikaator
Ebaselge identifikaator
ContextKeyword
Viidete loend:
Identifikaator
IdentifikaatorReferenceOperator ReferenceList...
Tekstisisene kirje
Tekstisisene kirje:
{
InlineRecordListiopt}
Tekstisisene kirjeloend:
Identifikaatori:avaldis
Identifikaatori:avaldiseloendSeparatorInlineRecordList
Tekstisisene tabel
Tekstisisenetabel:
[
InlineTableListiopt]
InlineTableList:
Avaldis
AvaldiseloendSeparator...InlineTableList
Avaldis
Avaldis:
Sõnasõnaline
Viide
InlineRecord
InlineTable
FunctionCall
(
Avaldis)
PrefixOperatoravaldis
AvaldisPostfixOperator
AvaldisBinaryOperatorAvaldis
Ahelavaldised
Aheldatud väljapressimine:
Avaldis
ExpressionChainingSeparatorChainedExpressionopt
Funktsioonikutse
Funktsioonicall:
FunctionIdentifier(FunctionArguments opt)
Funktsiooni identifikaator:
Identifikaator
Identifikaatori.funktsiooniidentifikaator
FunctionArguments:
ChainedExpression
ChainedExpressionListSeparatorFunctionArguments