Konsolideret grammatik
Leksikalsk grammatik
lexical-unit:
lexical-elementsopt
lexical-elements:
lexical-element lexical-elementsopt
lexical-element:
blanktegn
Token
Kommentar
Blanktegn
Mellemrum:
Ethvert tegn med Unicode-klasse Zs
Vandret tabulatortegn (U+0009
)
Lodret tabulatortegn (U+000B
)
Formularfeedtegn (U+000C
)
Vognreturtegn (U+000D
) efterfulgt af linjeskifttegn (U+000A
) nyt linjetegn
new-line-character:
Vognreturtegn (U+000D
)
Linjeskifttegn (U+000A
)
Næste linjetegn (U+0085
)
Linjeseparatortegn (U+2028
)
Afsnitsseparatortegn (U+2029
)
Kommentar
Kommentar:
enkeltlinjekommentar
afgrænset kommentar
enkeltlinjekommentar:
//
enkelt-line-comment-charactersopt
enkeltlinjekommentartegn:
single-line-comment-character single-line-comment-charactersopt
enkeltlinjekommentartegn:
Alle Unicode-tegn undtagen et nyt linjetegn
afgrænset kommentar:
/*
delimited-comment-textopt asterisks/
delimited-comment-text:
delimited-comment-section delimited-comment-textopt
delimited-comment-section:
/
stjernervælger not-slash-or-asterisk
Stjerner:
*
stjernervælger
not-slash-or-asterisk:
Alle Unicode-tegn undtagen *
eller /
Tokens
Token:
Identifikator
Søgeord
Bogstavelig
operator-or-punctuator
Escape-sekvenser for tegn
character-escape-sequence:
#(
escape-sequence-list)
escape-sequence-list:
single-escape-sequence
escape-sequence-list,
single-escape-sequence
single-escape-sequence:
long-unicode-escape-sequence
short-unicode-escape-sequence
control-character-escape-sequence
escape-escape
long-unicode-escape-sequence:
hex-digit hex-digit hex-digit hex-digit hex-digit hex-digit hex-digit hex-digit hex-digit
short-unicode-escape-sequence:
hex-digit hex-digit hex-digit hex-digit
control-character-escape-sequence:
control-character
control-character:
cr
lf
tab
escape-escape:
#
Konstanter
Bogstavelig:
logical-literal
number-literal
tekstkonstant
null-literal
verbatim-literal
logical-literal:
true
false
number-literal:
decimal-number-literal
hexadecimal-number-literal
decimal-digits:
decimal-digit decimal-digitsopt
decimal-digit: en af
0 1 2 3 4 5 6 7 8 9
hexadecimal-number-literal:
0x
hex-cifre
0X
hex-cifre
hex-cifre:
hex-digit hex-digitsopt
hex-digit: en af
0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
decimal-number-literal:
decimal-digits.
decimal-digits exponent-partopt
.
decimal-digits exponent-partopt
decimal-digits exponent-partopt
eksponentdel:
e
signopt decimal-digits
E
signopt decimal-digits
tegn: en af
+ -
text-literal:
"
text-literal-charactersopt"
text-literal-characters:
text-literal-character text-literal-charactersopt
text-literal-character:
enkelt-tekst-tegn
character-escape-sequence
double-quote-escape-sequence
enkelt-tekst-tegn:
Alle tegn undtagen "
(U+0022
) eller #
(U+0023
) efterfulgt af (
(U+0028
)
double-quote-escape-sequence:
""
(U+0022
, U+0022
)
null-literal:
null
verbatim-literal:
#!"
text-literal-charactersopt"
Identifiers
Id:
regular-identifier
quoted-identifier
regular-identifier:
available-identifier
available-identifier dot-character regular-identifier
available-identifier:
Et nøgleord eller en identifikator , der ikke er et nøgleord
keyword-or-identifier:
bogstav-tegn
understregningstegn
identifier-start-character identifier-part-characters
identifier-start-character:
bogstav-tegn
understregningstegn
identifier-part-characters:
identifier-part-character identifier-part-charactersopt
identifier-part-character:
bogstav-tegn
decimal-digit-character
understregningstegn
connecting-character
kombinationstegn
formateringstegn
generalized-identifier:
generalized-identifier-part
generalized-identifier adskilt kun af tomme værdier (U+0020
) generalized-identifier-part
generalized-identifier-part:
generalized-identifier-segment
decimal-digit-character generalized-identifier-segment
generalized-identifier-segment:
keyword-or-identifier
keyword-or-identifier dot-character keyword-or-identifier
priktegn:
.
(U+002E
)
understregningstegn:
_
(U+005F
)
letter-character:_
Et Unicode-tegn i klasserne Lu, Ll, Lt, Lm, Lo eller Nl
kombinationstegn:
Et Unicode-tegn i klasse Mn eller Mc
decimal-digit-character:
Et Unicode-tegn i klasse Nd
connecting-character:
Et Unicode-tegn på klasse-pc'en
formateringstegn:
Et Unicode-tegn i klassen Cf
quoted-identifier:
#"
text-literal-charactersopt"
Nøgleord og foruddefinerede id'er
Foruddefinerede id'er og nøgleord kan ikke omdefineres. En citeret identifikator kan bruges til at håndtere identifikatorer, der ellers kolliderer med foruddefinerede identifikatorer eller nøgleord.
nøgleord: et afand as each else error false if in is let meta not null or otherwise
section shared then true try type #binary #date #datetime
#datetimezone #duration #infinity #nan #sections #shared #table #time
Operatorer og tegnsætningstegn
operator-or-punctuator: en af
, ; = < <= > >= <> + - * / & ( ) [ ] { } @ ? ?? => .. ...
Syntaktisk grammatik
Dokumenter
Dokument:
sektionsdokument
expression-document
Sektionsdokumenter
section-document:
Afsnit
Afsnit:
literal-attributesoptsection
section-name;
section-members opt
section-name:
Identifikator
section-members:
section-member section-membersopt
section-member:
literal-attributesopt sharedopt section-member-name=
expression;
section-member-name:
Id
Udtryksdokumenter
Udtryk
expression-document:
Udtryk
Udtryk:
logical-or-expression each-expression
funktionsudtryk
let-expression
if-expression
error-raising-expression
error-handling-expression
Logiske udtryk
logical-or-expression:
logical-and-expression
logical-and-expressionor
logical-or-expression
logical-and-expression:
is-expression
logical-and-expressionand
is-expression
Er-udtryk
is-expression:
as-expression
is-expressionis
nullable-primitive-type
nullable-primitive-type:
nullable
opt primitive-type
Som udtryk
as-expression:
lighedsudtryk
as-expressionas
nullable-primitive-type
Lighedsudtryk
lighedsudtryk:
relationsudtryk
relationsudtryk=
lighedsudtryk
relationsudtryk<>
lighedsudtryk
Relationsudtryk
relationelt-udtryk:
additivt-udtryk
additive-expression<
relational-expression
additive-expression>
relational-expression
additive-expression<=
relational-expression
additive-expression>=
relational-expression
Aritmetiske udtryk
additivt-udtryk:
multiplikativt-udtryk
multiplicative-expression+
additive-expression
multiplicative-expression-
additive-expression
multiplicative-expression&
_additive-expression
multiplikativt-udtryk:
metadata-udtryk
metadata-expression*
multiplicative-expression
metadata-expression/
multiplicative-expression
Metadataudtryk
metadata-udtryk:
monadisk-udtryk
monadisk-udtrykmeta
monadisk-udtryk
Monadisk udtryk
monadisk-udtryk:
type-expression
+
monadisk-udtryk
-
monadisk-udtryk
not
monadisk-udtryk
Primært udtryk
primary-expression:
literal-expression
list-expression
record-expression
identifier-expression
section-access-expression
parentesiseret-udtryk
field-access-expression
item-access-expression
invoke-expression
ikke-implementeret-udtryk
Konstantudtryk
literal-expression:
Bogstavelig
Id-udtryk
identifier-expression:
identifier-reference
identifier-reference:
exclusive-identifier-reference
inclusive-identifier-reference
exclusive-identifier-reference:
Identifikator
inclusive-identifier-reference:
@
Identifikator
Udtryk for sektionsadgang
section-access-expression:
id-id!
Udtryk med parentes
parentesiseret-udtryk:
(
Udtryk)
Ikke-implementeret udtryk
not-implemented-expression:
...
Aktivér udtryk
invoke-expression:
primary-expression(
argument-listopt)
argument-list:
Udtryk
argumentliste for udtryk,
Listeudtryk
list-expression:
{
elementlistevalg}
elementliste:
Element
elementelementliste,
Element:
Udtryk
udtryksudtryk..
Postudtryk
record-expression:
[
field-listopt]
field-list:
Feltet
feltfeltliste,
Feltet:
field-name-udtryk=
field-name:
generalized-identifier
quoted-identifier
Elementadgangsudtryk
item-access-expression:
elementvalg
optional-item-selection
item-selection: primary-expression{
item-selector}
optional-item-selection:
primary-expression{
item-selector} ?
elementvælger:
Udtryk
Udtryk for feltadgang
field-access-expression:
feltmarkering
implicit-target-field-selection
Projektion
implicit-target-projection
field-selection:
primary-expression field-selector
field-selector:
required-field-selector
optional-field-selector
required-field-selector:
[
field-name]
optional-field-selector:
[
field-name] ?
implicit-target-field-selection:
feltvælger
Projektion:
primary-expression required-projection
primary-expression optional-projection
required-projection:_
[
required-selector-list]
valgfri projektion:
[
required-selector-list] ?
required-selector-list:
required-field-selector
required-field-selector,
required-selector-list
implicit-target-projection:
required-projection
valgfri projektion
Funktionsudtryk
function-expression:
(
parameter-listopt)
return-typeopt=>
function-body
function-body:
Udtryk
parameter-list:
fixed-parameter-list
fixed-parameter-list,
optional-parameter-list
optional-parameter-list
fixed-parameter-list:
parameter
parameter,
fixed-parameter-list
Parameter:
parameter-name primitive-parameter-typeopt
parameter-name:
Identifikator
primitive-parameter-type:
primitiv-antagelse
return-type:
primitiv-antagelse
primitiv-antagelse:
as
nullable-primitive-type
optional-parameter-list:
optional-parameter
optional-parameter,
optional-parameter-list
optional-parameter:
optional
Parameter
Hvert udtryk
each-expression:
each
each-expression-body
each-expression-body:
function-body
Let-udtryk
let-expression:
let
variable-list-udtrykin
variable-list:
variabel
variable,
variable-list
Variabel:
variable-name-udtryk=
variable-name:
Id
If-udtryk
if-expression:
if
if-conditionthen
true-expressionelse
false-expression
if-condition:
Udtryk
true-expression:
Udtryk
false-expression:
Udtryk
Typeudtryk
type-expression:
primary-expression
type
primary-type
Type:
primary-expression
primary-type
primary-type:
primitiv type
posttype
listetype
funktionstype
tabeltype
nullable-type
primitiv-type: en af
any anynonnull binary date datetime datetimezone duration function
list logical none null number record table text time type
record-type:
[
open-record-marker]
[
field-specification-listopt]
[
field-specification-list,
open-record-marker]
field-specification-list:
field-specification
field-specification,
field-specification-list
field-specification:
optional
opt field-name field-type-specificationopt
field-type-specification:
=
felttype
field-type:
type
open-record-marker:
...
listetype:
{
elementtype}
item-type:
type
function-type:
function (
parameter-specification-listopt)
return-type
parameter-specification-list:
required-parameter-specification-list
required-parameter-specification-list,
optional-parameter-specification-list
optional-parameter-specification-list
required-parameter-specification-list:
required-parameter-specification
required-parameter-specification,
required-parameter-specification-list
required-parameter-specification:
parameterspecifikation
optional-parameter-specification-list:
optional-parameter-specification
optional-parameter-specification,
optional-parameter-specification-list
optional-parameter-specification:
optional
parameterspecifikation
parameter-specification:
parameter-name parameter-type
parameter-type:
assertion
Påstand:
as
Type
table-type:
table
rækketype
row-type:
[
field-specification-listopt]
nullable-type:
nullable
type
Fejl under opløftning af udtryk
error-raising-expression:
error
Udtryk_
Udtryk for fejlhåndtering
error-handling-expression:
try
protected-expression error-handleropt
protected-expression:
Udtryk
error-handler:
otherwise-clause
catch-clause
otherwise-clause:
otherwise
standardudtryk
default-expression:
Udtryk
catch-clause:
catch
catch-function
catch-function:
(
parameter-nameopt=>
)
function-body
Konstantattributter
literal-attributes:
record-literal
record-literal:
[
literal-field-listopt]
literal-field-list:
literal-field
literal-field,
literal-field-list
literal-field:
field-name=
any-literal
list-literal:
{
literal-item-listopt}
literal-item-list:
any-literal
any-literal literal-item-list,
any-literal:
record-literal
list-literal
logical-literal
number-literal
tekstkonstant
null-literal
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: I hele 2024 udfaser vi GitHub-problemer som feedbackmekanisme for indhold og erstatter det med et nyt feedbacksystem. Du kan få flere oplysninger under:Indsend og få vist feedback om