Číst v angličtině

Sdílet prostřednictvím


Konsolidovaná gramatika

Gramatika slov

lexical-unit:
      lexikální prvky opt
lexikální prvky:
      lexical-element lexical-elementsopt
lexical-element:
      prázdný znak
      token
      komentář

Prázdné znaky

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ář

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 /

Tokeny

symbol:
      identifikátor
      klíčové slovo
      literal
      operátor nebo interpunkční znaméčko

Řídicí sekvence znaků

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ály

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"

Identifiers

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"

Klíčová slova a předdefinované identifikátory

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 z
and 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átory a interpunkční znaky

operátor nebo interpunkční znaméčko: jeden z
      , ; = < <= > >= <> + - * / & ( ) [ ] { } @ ? ?? => .. ...

Syntaktická gramatika

Dokumenty

dokument:
      section-document
      expression-document

Dokumenty oddílů

section-document:
      section
oddíl:
      opt section-name
section-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

Dokumenty výrazů

Výrazy

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é výrazy

logický nebo výraz:
      logický a výraz
      logical-and-expression
orlogical-or-expression
logický výraz:
      is-expression
      logical-and-expression is-expression
and

Je výraz

is-expression:
      as-expression
      is-expression
isprimitive-type-or-nullable-primitive-type

Výraz As

as-expression:
      výraz rovnosti
      jako výraz
asprimitivní-nebo-nulovatelný-primitivní-typ

Výraz rovnosti

výraz rovnosti:
      relační výraz
      relational-expression
=equality-expression
      relational-expression
<>equality-expression

Relační výraz

relační výraz:
      additive-expression
      additive-expression
<relational-expression
      additive-expression
>relational-expression
      additive-expression
<=relational-expression
      additive-expression
>=relational-expression

Aritmetické výrazy

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

výraz metadat:
      unary-expression
      unary-expression
metaunary-expression

Unární výraz

unární výraz:
      type-expression

       + unary-expression
       - unary-expression
       not unary-expression

Primární výraz

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

Literálový výraz

literal-expression:
      literál

Výraz identifikátoru

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

Výraz přístupu k oddílu

section-access-expression:
      Identifikátor identifikátoru
!

Výraz závorek

parenthesized-expression:
       ( výraz)

Neimplementovaný výraz

neimplementovaný výraz:
      ...

Vyvolání výrazu

invoke-expression:
      primární výraz
(argument-list opt)
argument-list:
      výraz
      seznam argumentů výrazů
,

Výraz seznamu

list-expression:
       { opt-list item-list}
item-list:
      položka
      item
,item-list
položka:
      výraz
      Výraz výrazu
..

Výraz záznamu

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

Výraz přístupu k položce

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

Výrazy přístupu k polím

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

Výraz funkce

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

Každý výraz

each-expression:
       each each-expression-body
each-expression-body:
      function-body

Výraz Let

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

Výraz If

if-expression:
       if if-conditionthentrue-expressionelsefalse-expression
if-condition:
      výraz
true-expression:
      výraz
false-expression:
      výraz

Výraz typu

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

Chyba při vyvolání výrazu

error-raising-expression:
       error výraz_

Výraz zpracování chyb

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

Atributy literálu

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