Share via


Konsolidert grammatikk

Leksikalsk grammatikk

leksikalsk enhet:
      leksikalske elementervelger
leksikalske elementer:
      leksikalsk element leksikalsk-elementervelger
leksikalsk element:
      mellomrom
      Token
      Kommentar

Mellomrom

Mellomrom:
      Alle tegn med Unicode-klasse Zs
      Vannrett tabulatortegn (U+0009)
      Loddrett tabulatortegn (U+000B)
      Skjemafeedtegn (U+000C)
      Linjeskifttegn (U+000D) etterfulgt av linjefeedtegn (U+000A) nytt linjetegn
nytt linjetegn:

      Returtegn for vogn (U+000D)
      Linjefeedtegn (U+000A)
      Neste linjetegn (U+0085)
      Linjeskilletegn (U+2028)
      Avsnittsskilletegn (U+2029)

Kommentar

Kommentar:
      kommentar med én linje
      delimited-comment

kommentar med én linje:
      //enkeltlinje-kommentar-tegnvelger
kommentartegn med én linje:
      enkeltlinje-kommentar-tegn enkeltlinje-kommentar-tegnvelger
kommentartegn med én linje:

      Alle Unicode-tegn unntatt et nytt linjetegn
kommentar med skilletegn:

      /*delimited-comment-textopt asterisks/
delimited-comment-text:
      delimited-comment-section delimited-comment-textopt
delimited-comment-section:

      /
      stjernervelger ikke-skråstrek-eller-stjerne
Stjerner:

      *stjerner velger
not-slash-or-asterisk:

      Alle Unicode-tegn unntatt * eller /

Tokener

Token:
      identifikator
      Søkeord
      Bokstavelig
      operator-eller-tegnsetting

Tegnrømningssekvenser

tegn-escape-sekvens:
      #(escape-sequence-list)
escape-sequence-list:
      enkelt-escape-sekvens
      escape-sequence-list
,single-escape-sequence
enkelt-escape-sekvens:
      long-unicode-escape-sequence
      kort-unicode-escape-sekvens
      kontroll-tegn-escape-sekvens
      escape-escape
long-unicode-escape-sequence:
      heksadesimal heksadesimal heksadesimal heksadesimal heksadesimal heksadesimal heksadesimal heksadesimal siffer
kort-unicode-escape-sekvens:
      heksadesimal heksadesimal heksadesimal heksadesimal heksadesimal
kontroll-tegn-escape-sekvens:
      kontroll-tegn
kontroll-tegn:

      cr
      lf
      tab
escape-escape:
      #

Litteraler

Bokstavelig:
      logisk-litteral
      talllitteral
      tekstlitteral
      null-litteral
      ordrett-litteral
logisk-litteral:
      true
      false
talllitteral:
      desimaltall-litteral
      heksadesimaltall-litteral
desimaltall:
      desimalsifrede desimalervelger
desimaltall:
én av
      0 1 2 3 4 5 6 7 8 9
heksadesimaltall-litteral:
      0xheksadesimale sifre
      0Xheksadesimale sifre
heksadesimale sifre:
      heksadesimale heksadesimale sifrevelger
heksadesimal siffer:
én av
      0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
desimaltall-litteral:
      desimalsifre
.desimalsifre eksponentdel
      .eksponentdelfor desimalsifre
      eksponentdelfor desimalsifre
eksponentdel:

      esignopt decimal-digits
      Esignopt decimal-digits
sign:
én av
      + -
tekstlitteral:
      "tekst-litteral-tegnvelger"
tekst-litterale tegn:
      tekst-litteral-tegn tekst-litteral-tegnvelger
tekst-litteral-tegn:
      enkelttekst-tegn
      tegn-escape-sekvens
      dobbelt-sitat-escape-sekvens
enkeltteksttegn:

      Alle tegn unntatt " (U+0022) eller # (U+0023) etterfulgt av ( (U+0028)
dobbelt-sitat-escape-sekvens:
      "" (U+0022, U+0022)
null-litteral:
      null
ordrett-litteral:
      #!"tekst-litteral-tegnvelger"

Identifikatorer

Identifikator:
      vanlig identifikator
      quoted-identifier
vanlig identifikator:
      tilgjengelig identifikator
      vanlig identifikator med tilgjengelige identifikatorer
tilgjengelig identifikator:

      Et nøkkelord eller en identifikator som ikke er et nøkkelord
nøkkelord eller identifikator:
      letter-tegn
      understrekingstegn
      identifikator-start-tegn-ID-deltegn
identifikator-start-tegn:
      letter-tegn
      understrekingstegn
identifikatordeltegn:
      Identifier-part-character identifier-part-charactersopt
identifikatordeltegn:
      letter-tegn
      desimal-siffer-tegn
      understrekingstegn
      koblingstegn
      kombinere tegn
      formateringstegn
generalisert identifikator:
      generalisert identifikatordel
      generalisert-identifikator
atskilt bare med tomme (U+0020) generalisert-identifikator-del
generalisert identifikatordel:
      generalisert-identifikator-segment
      desimal-siffer-tegn generalisert-identifikator-segment
generalisert-identifikator-segment:
      nøkkelord eller identifikator
      nøkkelord-eller-identifikator-nøkkelord-eller-identifikator for prikk-tegn
prikketegn:

      . (U+002E)
understrekingstegn:
      _ (U+005F)
letter-character:_
      Et Unicode-tegn i klassene Lu, Ll, Lt, Lm, Lo eller Nl
kombinerer tegn:
      Et Unicode-tegn i klassene Mn eller Mc
desimalsifret tegn:
      Et Unicode-tegn i klassen Nd
koblingstegn:
      Et Unicode-tegn på klasse-PC-en
formateringstegn:
      Et Unicode-tegn i klassen Cf
quoted-identifier:
      #"tekst-litteral-tegnvelger"

Nøkkelord og forhåndsdefinerte identifikatorer

Forhåndsdefinerte identifikatorer og nøkkelord kan ikke omdefineres. En sitert identifikator kan brukes til å håndtere identifikatorer som ellers ville kollidere med forhåndsdefinerte identifikatorer eller nøkkelord.

nøkkelord: ett av
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

Operatorer og tegnsettingstegn

operator-or-punctuator: én av
      , ; = < <= > >= <> + - * / & ( ) [ ] { } @ ? ?? => .. ...

Syntaktisk grammatikk

Dokumenter

Dokumentet:
      inndelingsdokument
      uttrykksdokument

Inndelingsdokumenter

inndelingsdokument:
      Delen
Delen:
      literal-attributesopt
sectionsection-name;section-members opt
inndelingsnavn:
      identifikator
inndelingsmedlemmer:
      section-member section-membersopt
inndelingsmedlem:
      litteral-attributter velger delt opt-section-member-name-uttrykk
=;
navn på inndelingsmedlem:
      Identifikator

Uttrykksdokumenter

Uttrykk

uttrykk-dokument:
      Uttrykk
Uttrykk:
      logisk-eller-uttrykk
hvert uttrykk
      funksjon-uttrykk
      let-expression
      if-expression
      error-raising-expression
      feilbehandlingsuttrykk

Logiske uttrykk

logisk-eller-uttrykk:
      logisk og uttrykk
      logisk-og-uttrykk
orlogisk-eller-uttrykk
logisk og uttrykk:
      er-uttrykk
      logisk-og-uttrykk
ander-uttrykk

Er uttrykk

er-uttrykk:
      as-expression
      is-expression
isnullable-primitive-type
nullable-primitive-type:

      nullableopt primitive-type

Som uttrykk

as-expression:
      likhetsuttrykk
      as-expression
asnullable-primitive-type

Likhetsuttrykk

likhetsuttrykk:
      relasjonsuttrykk
      likhetsuttrykk for relasjonsuttrykk
=
      likhetsuttrykk for relasjonsuttrykk
<>

Relasjonsuttrykk

relasjonsuttrykk:
      additive-uttrykk
      additive-uttrykk
<relasjonsuttrykk
      additive-uttrykk
>relasjonsuttrykk
      additive-uttrykk
<=relasjonsuttrykk
      additive-uttrykk
>=relasjonsuttrykk

Aritmetiske uttrykk

additive-uttrykk:
      multiplikativt uttrykk
      multiplikativt uttrykk
+additive-uttrykk
      multiplikativt uttrykk
-additive-uttrykk
      multiplikativt uttrykk
& _additive-uttrykk
multiplikativt uttrykk:
      metadata-uttrykk
      multiplikativt uttrykk for metadata-uttrykk
*
      multiplikativt uttrykk for metadata-uttrykk
/

Metadatauttrykk

metadata-uttrykk:
      unary-expression
      unary-expression
metaunary-expression

Uært uttrykk

uær-uttrykk:
      type-uttrykk

      +unary-expression
      -unary-expression
      notunary-expression

Primært uttrykk

primært uttrykk:
      litteral-uttrykk
      listeuttrykk
      postuttrykk
      identifikator-uttrykk
      section-access-expression
      parentes-uttrykk
      felttilgangsuttrykk
      element-tilgang-uttrykk
      invoke-expression
      ikke implementert-uttrykk

Litteraluttrykk

litteral-uttrykk:
      Bokstavelig

Identifikatoruttrykk

identifikator-uttrykk:
      identifikatorreferanse
identifikatorreferanse:
      eksklusiv-identifikator-referanse
      inclusive-identifier-reference
eksklusiv-identifikator-referanse:
      identifikator
inclusive-identifier-reference:

      @identifikator

Inndelingstilgangsuttrykk

section-access-expression:
      ID for
!identifikator

Parentesert uttrykk

parentes-uttrykk:
      (Uttrykk)

Ikke implementert uttrykk

ikke implementert-uttrykk:
      ...

Aktiver uttrykk

invoke-expression:
      valg av argumentliste for primæruttrykk
()
argumentliste:
      Uttrykk
      argumentliste for uttrykk
,

Listeuttrykk

listeuttrykk:
      {velger du elementliste}
elementliste:
      Element
      elementelementliste
,
Element:
      Uttrykk
      uttrykksuttrykk
..

Postuttrykk

postuttrykk:
      [velger feltliste]
feltliste:
      Feltet
      feltfeltliste
,
Feltet:
      feltnavnuttrykk
=
feltnavn:
      generalisert identifikator
      quoted-identifier

Elementtilgangsuttrykk

element-tilgang-uttrykk:
      elementvalg
      valgfritt elementvalg
elementvalg:
elementvelger for primæruttrykk
{}
valgfritt elementvalg:
      elementvelger for primært uttrykk
{} ?
elementvelger:
      Uttrykk

Felttilgangsuttrykk

felttilgangsuttrykk:
      feltvalg
      implisitt målfeltvalg
      Projeksjon
      implisitt målprojeksjon
feltvalg:
      feltvelger for primæruttrykk
feltvelger:
      obligatorisk feltvelger
      valgfritt feltvelger
obligatorisk feltvelger:

      [feltnavn]
valgfritt feltvelger:
      [feltnavn] ?
implisitt målfeltvalg:
      feltvelger
Projeksjon:
      obligatorisk projeksjon av primæruttrykk
      valgfri projeksjon av primæruttrykk
obligatorisk projeksjon:_
      [obligatorisk velgerliste]
valgfri projeksjon:
      [obligatorisk velgerliste] ?
obligatorisk velgerliste:
      obligatorisk feltvelger
      obligatorisk feltvelger
,obligatorisk velgerliste
implisitt målprojeksjon:
      obligatorisk projeksjon
      valgfri projeksjon

Funksjonsuttrykk

funksjon-uttrykk:
      (parameter-listopt)return-typeopt=>function-body
funksjonstekst:
      Uttrykk
parameterliste:
      fast-parameter-liste
      fast-parameter-liste
,valgfritt-parameter-liste
      valgfri parameterliste
fast-parameter-liste:
      parameter
      parameter
,fast-parameter-liste
Parameteren:
      parameternavn primitive-parameter-typeopt
parameternavn:
      identifikator
primitiv-parametertype:
      primitiv deklarasjon
returtype:
      primitiv deklarasjon
primitiv deklarasjon:

      asnullable-primitive-type
valgfri parameterliste:
      valgfri parameter
      valgfri parameter
,valgfri parameterliste
valgfri parameter:

      optionalParameteren

Hvert uttrykk

hvert uttrykk:
      eachhver-uttrykk-brødtekst
hver uttrykkstekst:
      funksjon-brødtekst

La uttrykk

let-expression:
      letvariabellisteuttrykkin
variabel-liste:
      Variabel
      variabel
,variabel-liste
Variabel:
      variabelnavnuttrykk
=
variabelnavn:
      Identifikator

Hvis uttrykk

hvis-uttrykk:
      ifhvis-betingelsethentrue-expressionelsefalse-expression
hvis-betingelse:
      Uttrykk
true-expression:
      Uttrykk
usant uttrykk:
      Uttrykk

Typeuttrykk

type-uttrykk:
      primært uttrykk

      typeprimærtype
Type:
      primært uttrykk
      primærtype
primærtype:
      primitiv type
      posttype
      listetype
      funksjonstype
      tabelltype
      nullbar-type
primitiv-type:
én av
      any anynonnull binary date datetime datetimezone duration function
      list logical none null number record table text time type
posttype:
      [open-record-marker]
      [velger feltspesifikasjonsliste]
      [felt-spesifikasjon-liste,åpen-post-indikator]
feltspesifikasjonsliste:
      feltspesifikasjon
      feltspesifikasjonsliste for feltspesifikasjon
,
feltspesifikasjon:

      optionalopt field-name field-type-specificationopt
felttype-spesifikasjon:

      =felttype
felttype:
      type
open-record-marker:

      ...
listetype:
      {elementtype}
elementtype:
      type
funksjonstype:

      function (parameter-specification-listopt)return-type
parameter-spesifikasjon-liste:
      obligatorisk parameter-spesifikasjon-liste
      required-parameter-specification-list
,optional-parameter-specification-list
      valgfri parameter-spesifikasjon-liste
obligatorisk parameter-spesifikasjon-liste:
      obligatorisk parameter-spesifikasjon
      obligatorisk parameter-spesifikasjon
,obligatorisk-parameter-spesifikasjon-liste
obligatorisk parameter-spesifikasjon:
      parameter-spesifikasjon
valgfri parameter-spesifikasjon-liste:
      valgfri parameter-spesifikasjon
      valgfri parameter-spesifikasjon
,valgfritt-parameter-spesifikasjon-liste
valgfri parameter-spesifikasjon:

      optionalparameter-spesifikasjon
parameter-spesifikasjon:
      parametertype for parameternavn
parametertype:
      assertion
Påstand:

      asType
tabelltype:

      tableradtype
radtype:

      [velger feltspesifikasjonsliste]
nullbar type:
      nullableType

Feil under heving av uttrykk

error-raising-expression:
      error Uttrykk_

Feilbehandlingsuttrykk

feilbehandlingsuttrykk:
      tryvalg av feilbehandlingfor beskyttet uttrykk
beskyttet uttrykk:
      Uttrykk
feilbehandling:
      ellers-setningsdel
      catch-clause
ellers-setningsdel:

      otherwisestandarduttrykk
standarduttrykk:
      Uttrykk
catch-clause:
      catchcatch-function
catch-funksjon:
      (parameternavnopt)=>function-body

Litterale attributter

litteral-attributter:
      postlitteral
postlitteral:

      [velger litteral-felt-liste]
litteral-felt-liste:
      litteralfelt
      litteral-felt
,litteral-felt-liste
litteralfelt:
      feltnavn for en hvilken som
=helst litteral
listelitteral:

      {velger litteral-element-liste}
litteral-element-liste:
      hvilken som helst litteral
      litteral
,litteral-element-liste
hvilken som helst litteral:
      postlitteral
      listelitteral
      logisk-litteral
      talllitteral
      tekstlitteral
      null-litteral