Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Leksikalsk grammatik
lexical-unit:
lexical-elementsopt
lexical-elements:
lexical-element lexical-elementsopt
lexical-element:
blanktegn
tegn
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
tegn:
Identifikator
nøgleord
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
identifikator:
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:
identifikator
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-expression or
logical-or-expression
logical-and-expression:
is-expression
logical-and-expression and
is-expression
Er-udtryk
is-expression:
as-expression
is-expression is
nullable-primitive-type
nullable-primitive-type:
nullable
opt primitive-type
Som udtryk
as-expression:
lighedsudtryk
as-expression as
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-udtryk meta
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:
vare
elementelementliste,
vare:
udtryk
udtryksudtryk..
Postudtryk
record-expression:
[
field-listopt ]
field-list:
mark
feltfeltliste,
mark:
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:
identifikator
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
slags:
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
slags
table-type:
table
rækketype
row-type:
[
field-specification-listopt ]
nullable-type:
nullable
slags
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