Geconsolideerde grammatica
Lexicale grammatica
lexicale eenheid:
kies voor lexicale elementen
lexicale elementen:
lexical-element lexical-elementsopt
lexical-element:
spatie
token
Commentaar
Witruimte
Whitespace:
Elk teken met Unicode-klasse Zs
Horizontaal tabteken (U+0009
)
Verticaal tabteken (U+000B
)
Formulierfeedteken (U+000C
)
Regelterugloopteken (U+000D
) gevolgd door regelinvoerteken (U+000A
) new-line-character
new-line-character:
Regelterugloopteken (U+000D
)
Teken voor regelinvoer (U+000A
)
Volgend regelteken (U+0085
)
Teken voor regelscheidingsteken (U+2028
)
Alineascheidingsteken (U+2029
)
Opmerking
Commentaar:
opmerking met één regel
met scheidingstekens gescheiden opmerking
opmerking met één regel:
//
Opt voor één regel-opmerking-tekens
tekens met één regel opmerking:
opt-tekens voor één regel-opmerking-tekenmet één regel
teken met één regel opmerking:
Unicode-tekens behalve een nieuw regelteken
met scheidingstekens gescheiden opmerking:
/*
sterretjes met scheidingstekens voor tekst met scheidingstekens/
tekst met scheidingstekens:
opt voor tekst met scheidingstekens in secties met scheidingstekens
sectie met scheidingstekens:
/
sterretjes kiezen voor not-slash-or-asterisk
Sterretjes:
*
sterretjeskiezen
not-slash-or-asterisk:
Unicode-tekens behalve *
of /
Tokens
Token:
id
Trefwoord
Letterlijke
operator-or-punctuator
Escapereeksen voor tekens
character-escape-sequence:
#(
escape-sequence-list)
escape-sequence-list:
een escape-reeks
escape-sequence-list,
single-escape-sequence
een escape-reeks:
lange unicode-escape-reeks
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
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:
#
Letterlijke waarden
Letterlijke:
logische letterlijke waarde
getal-letterlijke waarde
letterlijke tekst
null-letterlijke waarde
letterlijke letterlijke verbatim
logische letterlijke waarde:
true
false
aantal-letterlijke waarden:
decimaal-getal-letterlijk
hexadecimale-getal-letterlijke
decimale cijfers:
kies voordecimale cijfers
decimal-digit: een van
0 1 2 3 4 5 6 7 8 9
hexadecimale-getal-letterlijke waarde:
0x
hex-digits
0X
hex-digits
hex-digits:
hex-digit hex-digitsopt
hex-digit: een van
0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
decimaal-getal-letterlijk:
decimal-digits.
decimal-digits exponent-partopt
.
exponent-part-optvoor decimale cijfers
exponent-part-optvoor decimale cijfers
exponent-part:
e
tekenkiezen voor decimale cijfers
E
tekenkiezen voor decimale cijfers
teken: een van
+ -
letterlijke tekst:
"
opt voor tekst-letterlijke tekens"
letterlijke tekst:
tekst-letterlijk-teken-letterlijk-tekenskiezen
tekst-letterlijk-teken:
één tekstteken
teken-escape-reeks
double-quote-escape-sequence
enkel tekstteken:
Elk teken behalve "
(U+0022
) of #
(U+0023
) gevolgd door (
(U+0028
)
double-quote-escape-sequence:
""
(U+0022
, U+0022
)
null-literal:
null
letterlijke verbatim:
#!"
opt voor tekst-letterlijke tekens"
Identifiers
Id:
regular-identifier
id tussen aan/ uit
regular-identifier:
beschikbare id
available-identifier dot-character regular-identifier
beschikbare id:
Een trefwoord of id die geen trefwoord is
trefwoord of id:
letterteken
onderstrepingsteken
identifier-start-character identifier-part-characters
id-beginteken:
letterteken
onderstrepingsteken
identifier-part-characters:
id-part-character identifier-part-charactersopt
id-part-character:
letterteken
decimal-digit-character
onderstrepingsteken
verbindingsteken
combineren-teken
opmaakteken
gegeneraliseerde id:
generalized-identifier-part
generalized-identifier , gescheiden door lege waarden (U+0020
) generalized-identifier-part
generalized-identifier-part:
gegeneraliseerde id-segment
decimal-digit-character generalized-identifier-segment
gegeneraliseerde id-segment:
trefwoord of id
trefwoord-of-id-punt-teken-trefwoord-of-id
puntteken:
.
(U+002E
)
onderstrepingsteken:
_
(U+005F
)
letterteken:_
Een Unicode-teken van klassen Lu, Ll, Lt, Lm, Lo of Nl
combineren-teken:
Een Unicode-teken van klassen Mn of Mc
decimal-digit-character:
Een Unicode-teken van de klasse Nd
verbindingsteken:
Een Unicode-teken van de klasse-pc
opmaakteken:
Een Unicode-teken van de klasse Cf
aan/uit-id:
#"
opt voor tekst-letterlijke tekens"
Trefwoorden en vooraf gedefinieerde id's
Vooraf gedefinieerde id's en trefwoorden kunnen niet opnieuw worden gedefinieerd. Een aanhalings-id kan worden gebruikt om id's te verwerken die anders zouden botsen met vooraf gedefinieerde id's of trefwoorden.
trefwoord: een vanand 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
Operatoren en leestekens
operator-or-punctuator: een van
, ; = < <= > >= <> + - * / & ( ) [ ] { } @ ? ?? => .. ...
Syntactische grammatica
Documenten
Document:
section-document
expression-document
Sectiedocumenten
section-document:
section
Sectie:
opt-name;
section-membersopt-literal-attributes optsection
sectienaam:
id
sectie-leden:
section-member section-membersopt
sectielid:
literal-attributesopt sharedopt section-member-name=
expression;
sectie-lidnaam:
Id
Expressiedocumenten
Expressies
expression-document:
Expressie
Expressie:
elke expressie logische of expressie
function-expression
let-expression
if-expression
fout bij het genereren van expressies
foutafhandeling-expressie
Logische expressies
logische of expressie:
logische en expressie
logical-and-expressionor
logical-or-expression
logische en expressie:
is-expression
logical-and-expressionand
is-expression
Is expressie
is-expression:
as-expression
is-expressionis
nullable-primitive-type
nullable-primitive-type:
nullable
opt primitive-type
Als expressie
as-expression:
gelijkheidsexpressie
as-expressionas
nullable-primitive-type
Gelijkheidsexpressie
gelijkheidsexpressie:
relationele expressie
relationele-expressie=
gelijkheidsexpressie
relationele-expressie<>
gelijkheidsexpressie
Relationele expressie
relationele expressie:
additieve expressie
relationele expressie voor additieve expressie<
relationele expressie voor additieve expressie>
relationele expressie voor additieve expressie<=
relationele expressie voor additieve expressie>=
Rekenkundige expressies
additieve expressie:
vermenigvuldigingsexpressie
multiplicative-expression+
additieve expressie
multiplicative-expression-
additieve expressie
multiplicative-expression&
_additive-expression
vermenigvuldigingsexpressie:
metagegevensexpressie
multiplicative-expression voor metagegevensexpressie*
multiplicative-expression voor metagegevensexpressie/
Metagegevensexpressie
metadata-expression:
unary-expression
unary-expressionmeta
unary-expression
Unaire expressie
unary-expression:
type-expressie
+
unary-expression
-
unary-expression
not
unary-expression
Primaire expressie
primaire expressie:
letterlijke expressie
list-expression
record-expression
id-expressie
section-access-expression
haakjes-expressie
field-access-expression
item-access-expression
invoke-expression
niet-geïmplementeerde expressie
Letterlijke expressie
letterlijke expressie:
Letterlijke
Id-expressie
id-expressie:
id-verwijzing
id-verwijzing:
exclusive-identifier-reference
inclusive-identifier-reference
exclusive-identifier-reference:
id
inclusive-identifier-reference:
@
id
Expressie voor sectietoegang
section-access-expression:
id-id!
Expressie tussen haakjes
haakjes-expressie:
(
Expressie)
Niet-geïmplementeerde expressie
niet-geïmplementeerde expressie:
...
Expressie aanroepen
invoke-expression:
primary-expression(
argument-listopt)
argument-list:
Expressie
expressie,
argument-lijst
Lijstexpressie
list-expression:
{
opt voor itemlijst}
itemlijst:
Item
itemitemlijst,
item:
Expressie
expressie expressie..
Recordexpressie
record-expression:
[
opt voorlijst met velden]
lijst met velden:
veld
veldveldlijst,
Veld:
veldnaamexpressie=
veldnaam:
gegeneraliseerde id
id tussen aan/ uit
Expressie voor itemtoegang
item-access-expression:
itemselectie
optioneel-itemselectie
itemselectie: primaire expressie-itemselector{
}
optioneel-itemselectie:
primary-expression{
item-selector} ?
itemselector:
Expressie
Expressies voor veldtoegang
field-access-expression:
veldselectie
impliciete selectie van doelvelden
Projectie
impliciete doelprojectie
veldselectie:
primary-expression field-selector
veldkiezer:
required-field-selector
optioneel-veldselector
required-field-selector:
[
veldnaam]
optioneel-veldselector:
[
veldnaam] ?
impliciete doelveldselectie:
veldkiezer
Projectie:
primary-expression required-projection
primaire-expressie optioneel-projectie
required-projection:_
[
required-selector-list]
optioneel-projectie:
[
required-selector-list] ?
required-selector-list:
required-field-selector
required-field-selector,
required-selector-list
impliciete doelprojectie:
vereiste projectie
optioneel-projectie
Functie-expressie
function-expression:
(
parameterlijstopt)
return-typeopt=>
function-body
functietekst:
Expressie
parameterlijst:
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
parameternaam:
id
primitive-parameter-type:
primitieve assertie
retourtype:
primitieve assertie
primitieve assertie:
as
nullable-primitive-type
optioneel-parameterlijst:
optioneel-parameter
optional-parameter,
optional-parameter-list
optioneel-parameter:
optional
Parameter
Elke expressie
elke expressie:
each
elke expressie-hoofdtekst
elke expressie-hoofdtekst:
functietekst
Expressie toestaan
let-expression:
let
expressie voor variabele-lijstin
variable-list:
variabele
variabele-lijst,
Variabele:
expressie met variabele naam=
variabelenaam:
Id
If-expressie
if-expression:
if
if-conditionthen
true-expressionelse
false-expression
if-condition:
Expressie
true-expression:
Expressie
false-expression:
Expressie
Typeexpressie
type-expressie:
primaire expressie
type
primair type
type:
primaire expressie
primair type
primair type:
primitief-type
recordtype
list-type
functietype
tabeltype
nullable-type
primitieve-type: een van
any anynonnull binary date datetime datetimezone duration function
list logical none null number record table text time type
recordtype:
[
open-record-marker]
[
opt voor field-specification-list]
[
field-specification-list,
open-record-marker]
field-specification-list:
veldspecificatie
field-specification,
field-specification-list
veldspecificatie:
optional
opt field-name field-type-specificationopt
veldtypespecificatie:
=
veldtype
veldtype:
type
open-recordmarkering:
...
list-type:
{
itemtype}
itemtype:
type
functietype:
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:
parameterspecificatie
optional-parameter-specification-list:
optioneel-parameterspecificatie
optional-parameter-specification optional-parameter-specification-list,
optional-parameter-specification:
optional
parameterspecificatie
parameterspecificatie:
parameter-naam parameter-type
parametertype:
assertion
Bewering:
as
Type
tabeltype:
table
rijtype
rijtype:
[
opt voor field-specification-list]
nullable-type:
nullable
type
Fout bij het genereren van expressies
foutverheffen-expressie:
error
Expressie_
Expressie voor foutafhandeling
error-handling-expression:
try
protected-expression error-handleropt
beveiligde expressie:
Expressie
error-handler:
anders-component
catch-component
anders-component:
otherwise
standaardexpressie
standaardexpressie:
Expressie
catch-component:
catch
catch-function
catch-function:
(
parameter-nameopt=>
)
function-body
Letterlijke kenmerken
letterlijke kenmerken:
letterlijke record
letterlijke record:
[
opt voor literal-field-list]
literal-field-list:
letterlijk veld
literal-field,
literal-field-list
letterlijk veld:
veldnaam=
elke letterlijke waarde
letterlijke lijst:
{
opt voor literal-item-list}
literal-item-list:
elke letterlijke
any-literal literal-item-list,
any-literal:
letterlijke record
letterlijke lijst
logische letterlijke waarde
getal-letterlijke waarde
letterlijke tekst
null-letterlijke waarde
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor