Konsolidovaná gramatika
lexical-unit:
lexikální prvky opt
lexikální prvky:
lexical-element lexical-elementsopt
lexical-element:
prázdný znak
token
komentář
prázdné místo:
Libovolný znak s třídou Zs unicode
Vodorovný znak tabulátoru (U+0009
)
Svislý znak tabulátoru (U+000B
)
Znak informačního kanálu formuláře (U+000C
)
Znak návratu na začátek řádku (U+000D
) následovaný znakem odřádkování (U+000A
) znakem nového řádku
new-line-character:
Znak návratu na začátek řádku (U+000D
)
Znak odřádkování (U+000A
)
Znak dalšího řádku (U+0085
)
Znak oddělovače řádků (U+2028
)
Znak oddělovače odstavců (U+2029
)
komentář:
jednořádkový komentář
delimited-comment
jednořádkový komentář:
//
Opt-znakys jedním řádkem
jednořádkové znaky komentáře:
Jednořádkový-koment-character single-line-comment-charactersopt
jednořádkový znak komentáře:
Libovolný znak Unicode s výjimkou nového znaku řádku
delimited-comment:
/*
delimited-comment-textopt asterisks/
delimited-comment-text:
delimited-comment-section delimited-comment-textopt
delimited-comment-section:
/
asterisksopt not-slash-or-asterisk
hvězdičky:
*
asterisksopt
not-slash-or-asterisk:
Libovolný znak Unicode s výjimkou *
nebo /
symbol:
identifikátor
klíčové slovo
literal
operátor nebo interpunkční znaméčko
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:
#
literál:
logický literál
number-literal
text-literal
null-literal
doslovný literál
logický literál:
true
false
number-literal:
decimal-number-literal
šestnáctkový-number-literal
decimal-digits:
opt-digit-digits decimal-digitsopt
decimal-digit: one of
0 1 2 3 4 5 6 7 8 9
šestnáctkový-number-literal:
0x
šestnáctkové číslice
0X
šestnáctkové číslice
šestnáctkové číslice:
hex-digit hex-digits opts
šestnáctkové číslice: jedna z
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-part opt
decimal-digits exponent-part opt
exponent-part:
e
znaménkoopt decimal-digits
E
znaménkoopt decimal-digits
sign: one of
+ -
textový literál:
"
opt-text-literal-charactersopt"
text-literal-characters:
text-literal-character text-literal-charactersopt
text-literal-character:
jednotextový znak
character-escape-sequence
double-quote-escape-sequence
jednotextový znak:
Libovolný znak kromě "
(U+0022
) nebo #
(U+0023
) následovaný (
(U+0028
)
double-quote-escape-sequence:
""
(U+0022
, U+0022
)
null-literal:
null
doslovný literál:
#!"
opt-text-literal-charactersopt"
identifikátor:
regular-identifier
quoted-identifier
regular-identifier:
dostupný identifikátor
available-identifier dot-character regular-identifier
dostupný identifikátor:
Klíčové slovo nebo identifikátor, který není klíčovým slovem
klíčové slovo nebo identifikátor:
letter-character
znak podtržítka
identifier-start-character identifier-part-characters
identifikátor-počáteční znak:
letter-character
znak podtržítka
Znaky identifikátoru:
opt-identifier-part-character identifier-part-characters
identifier-part-character:
letter-character
decimal-digit-character
znak podtržítka
spojovací znak
combining-character
formatting-character
generalized-identifier:
generalized-identifier-part
generalizovaný identifikátor oddělený pouze prázdnými hodnotami (U+0020
) generalized-identifier-part
generalized-identifier-part:
generalized-identifier-segment
decimal-digit-character generalized-identifier-segment
generalized-identifier-segment:
klíčové slovo nebo identifikátor
keyword-or-identifier dot-character keyword-or-identifier
tečka:
.
(U+002E
)
znak podtržítka:
_
(U+005F
)
letter-character:_
Znak Unicode tříd Lu, Ll, Lt, Lm, Lo nebo Nl
combining-character:
Znak Unicode tříd Mn nebo Mc
decimal-digit-character:
Znak Unicode třídy Nd
připojovací znak:
Znak Unicode počítače třídy
formatting-character:
Znak Unicode třídy Cf
quoted-identifier:
#"
opt-text-literal-charactersopt"
Předdefinované identifikátory a klíčová slova nelze znovu definovat. Identifikátor v uvozování lze použít ke zpracování identifikátorů, které by jinak kolidovaly s předdefinovanými identifikátory nebo klíčovými slovy.
klíčové slovo: jedno zand 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
operátor nebo interpunkční znaméčko: jeden z
, ; = < <= > >= <> + - * / & ( ) [ ] { } @ ? ?? => .. ...
dokument:
section-document
expression-document
section-document:
section
oddíl:
opt section-namesection-membersliteral-attributes opt;
section-name:
identifikátor
section-members:
section-member section-membersopt
section-member:
literal-attributesopt sharedopt section-member-name=
expression;
section-member-name:
identifikátor
výraz-document:
výraz
výraz:
logický výraz nebo výraz
each-expression
function-expression
let-expression
if-expression
error-raising-expression
error-handling-expression
logický nebo výraz:
logický a výraz
logical-and-expressionor
logical-or-expression
logický výraz:
is-expression
logical-and-expression is-expressionand
is-expression:
as-expression
is-expressionis
primitive-type-or-nullable-primitive-type
as-expression:
výraz rovnosti
jako výrazas
primitivní-nebo-nulovatelný-primitivní-typ
výraz rovnosti:
relační výraz
relational-expression=
equality-expression
relational-expression<>
equality-expression
relační výraz:
additive-expression
additive-expression<
relational-expression
additive-expression>
relational-expression
additive-expression<=
relational-expression
additive-expression>=
relational-expression
additive-expression:
multiplikativní výraz
multiplicative-expression+
additive-expression
multiplicative-expression-
additive-expression
multiplicative-expression&
_additive-expression
multiplikativní výraz:
výraz metadat
metadata-expression*
multiplicative-expression
metadata-expression/
multiplicative-expression
výraz metadat:
unary-expression
unary-expressionmeta
unary-expression
unární výraz:
type-expression
+
unary-expression
-
unary-expression
not
unary-expression
primary-expression:
literal-expression
list-expression
record-expression
identifikátor –výraz
section-access-expression
parenthesized-expression
field-access-expression
item-access-expression
invoke-expression
neimplementovaný výraz
literal-expression:
literál
identifikátor-výraz:
Odkaz na identifikátor
Odkaz na identifikátor:
exclusive-identifier-reference
inclusive-identifier-reference
exclusive-identifier-reference:
identifikátor
inclusive-identifier-reference:
@
identifikátor
section-access-expression:
Identifikátor identifikátoru!
parenthesized-expression:
(
výraz)
neimplementovaný výraz:
...
invoke-expression:
primární výraz(
argument-list opt)
argument-list:
výraz
seznam argumentů výrazů,
list-expression:
{
opt-list item-list}
item-list:
položka
item,
item-list
položka:
výraz
Výraz výrazu..
record-expression:
[
výslovný souhlas se seznamempolí]
field-list:
pole
field-list,
pole:
výraz field-name=
název pole:
generalizovaný identifikátor
quoted-identifier
item-access-expression:
item-selection
optional-item-selection
item-selection:
primary-expression{
item-selector}
optional-item-selection:
primary-expression{
item-selector} ?
item-selector:
výraz
field-access-expression:
výběr polí
implicitní výběr cílového pole
projekce
implicitní cílová projekce
výběr pole:
primary-expression field-selector
selektor polí:
required-field-selector
optional-field-selector
required-field-selector:
[
název pole]
optional-field-selector:
[
název pole] ?
implicit-target-field-selection:
selektor polí
projekce:
primární výraz required-projection
primary-expression optional-projection
required-projection:_
[
required-selector-list]
volitelná projekce:
[
required-selector-list] ?
required-selector-list:
required-field-selector
required-field-selector,
required-selector-list
implicitní cílová projekce:
požadované projekce
volitelná projekce
function-expression:
(
parametr-listopt)
return-typeopt=>
function-body
function-body:
výraz
parameter-list:
fixed-parameter-list
fixed-parameter-list,
optional-parameter-list
optional-parameter-list
fixed-parameter-list:
parametr
parameter,
fixed-parameter-list
parametr:
parametr-jméno parametr-typopt
název parametru:
identifikátor
parametr-type:
ověření typu primitivní nebo nulovatelný primitivní
return-type:
výslovné prohlášení typu pro primitivní nebo nulovatelný primitivní typ
primární-nebo-nullovatelný-primární-typ-ujištění:
as
primitivní-nebo-null-primitivní-typ
optional-parameter-list:
optional-parameter
optional-parameter,
optional-parameter-parameter-list
optional-parameter:
optional
parametr
each-expression:
each
each-expression-body
each-expression-body:
function-body
let-expression:
let
výraz variable-listin
variable-list:
proměnná
seznam proměnných,
proměnná:
výraz variable-name=
název proměnné:
identifikátor
if-expression:
if
if-conditionthen
true-expressionelse
false-expression
if-condition:
výraz
true-expression:
výraz
false-expression:
výraz
type-expression:
primary-expression
type
primární typ
type:
primary-expression
primární typ
primární typ:
primitivní-nebo-nullovatelného-primitivního-typu
typ záznamu
list-type
function-type
table-type
Nullable typ
primitivního typu nebo primitivního typu s možnou hodnotou null:
nullable
opt primitive-type
primitivní typ: jeden z
any anynonnull binary date datetime datetimezone duration function list logical
none null number record table text time type
typ záznamu:
[
open-record-marker]
[
field-specification-listopt]
[
field-specification-list,
open-record-marker]
field-specification-list:
specifikace pole
field-specification,
field-specification-list
specifikace pole:
optional
opt field-name field-type-specificationopt
specifikace typu pole:
=
typ pole
typ pole:
type
open-record-marker:
...
typ seznamu:
{
item-type}
item-type:
type
function-type:
function (
parametr-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:
parametr-specification
optional-parameter-specification-list:
optional-parameter-specification
optional-parameter-specification,
optional-parameter-specification-list
optional-parameter-specification:
optional
parametr-specification
parametr-specification:
parameter-name parameter-type
parametr-type:
aserce typu
typové tvrzení:
as
typ
typ tabulky:
table
typ řádku
typ řádku:
[
field-specification-listopt]
nullable-type:
nullable
typ
error-raising-expression:
error
výraz_
error-handling-expression:
try
opt obslužné rutiny chyby chráněného výrazu
protected-expression:
výraz
obslužná rutina chyby:
otherwise-clause
catch-clause
otherwise-clause:
otherwise
default-expression
default-expression:
výraz
catch-clause:
catch
catch-function
catch-function:
(
)
=>
function-body
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:
libovolný literál
any-literal-item-list,
any-literal:
record-literal
list-literal
logický literál
number-literal
text-literal
null-literal