ไวยากรณ์รวม

ไวยากรณ์เลกซิคัล

lexical-unit:
      lexical-elementsopt
องค์ประกอบเลกซิคัล:
      องค์ประกอบเลกซิคัลองค์ประกอบเลกซิคัลเลือก
องค์ประกอบเลกซิคัล:
      ช่องว่าง
      โท เค็น
      ความ คิด เห็น

พื้นที่สีขาว

ช่อง ว่าง:
      อักขระใดๆ ที่มี Unicode คลาส Zs
      อักขระแท็บแนวนอน (U+0009)
      อักขระแท็บแนวตั้ง (U+000B)
      อักขระตัวดึงข้อมูลฟอร์ม (U+000C)
      อักขระขึ้นบรรทัดใหม่ (U+000D) ที่ตามด้วยอักขระป้อนบรรทัด (U+000A) new-line-character
new-line-character:

      อักขระขึ้นบรรทัดใหม่ (U+000D)
      อักขระป้อนบรรทัด (U+000A)
      อักขระบรรทัดถัดไป (U+0085)
      อักขระตัวคั่นบรรทัด (U+2028)
      อักขระตัวคั่นย่อหน้า (U+2029)

ข้อคิดเห็น

ความ คิด เห็น:
      single-line-comment
      delimited-comment

single-line-comment:
      //เลือกอักขระข้อคิดเห็นแบบบรรทัดเดียว
อักขระข้อคิดเห็นแบบบรรทัดเดียว:
      single-line-comment-character single-line-comment-characteropt
single-line-comment-character:

      อักขระ Unicode ใดๆ ยกเว้น new-line-character
delimited-comment:

      /*เครื่องหมายดอกจัน opt-comment-text delimited-comment/
delimited-comment-text:
      delimited-comment-section delimited-comment-textopt
delimited-comment-section:

      /
      asterisksopt not-slash-or-asterisk
เครื่องหมายดอกจัน:

      *asterisksopt
not-slash-or-asterisk:

      อักขระ Unicode ใดๆ ยกเว้น * หรือ /

โท เค็น

โท เค็น:
      ตัวระบุ
      คำ
      ตัว อักษร
      operator-or-punctuator

ลําดับการหลีกเลี่ยงอักขระ

ลําดับ character-escape:
      #(escape-sequence-list)
escape-sequence-list:
      ลําดับการหลีกเลี่ยงครั้งเดียว
      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:
      เลขหก เลขหก เลขหก เลขหก เลขหก เลขหก เลขหก
short-unicode-escape-sequence:
      เลขหก เลขหก เลขหก
control-character-escape-sequence:
      control-character
control-character:

      cr
      lf
      tab
escape-escape:
      #

สัญพจน์

ตัว อักษร:
      logical-literal (ตรรกะ-สัญพจน์)
      number-literal
      text-literal
      null-literal
      สัญพจน์ตามตัวอักษร
logical-literal:
      true
      false
number-literal:
      decimal-number-literal
      hexadecimal-number-literal
เลขทศนิยม:
      การเลือกทศนิยมตัวเลขทศนิยม
decimal-digit:
หนึ่งใน
      0 1 2 3 4 5 6 7 8 9
hexadecimal-number-literal:
      0xเลขหก
      0Xเลขหก
เลขหก:
      เลขหก เลขหก เลือก
hex-digit:
หนึ่งใน
      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:
      
.เลขทศนิยม เลขทศนิยม ส่วนเลขชี้กําลัง
      .การเลือกส่วนเลขชี้กําลังเลขทศนิยม
      การเลือกส่วนเลขชี้กําลังเลขทศนิยม
exponent-part:

      eลงชื่อใช้ เลขทศนิยม
      Eลงชื่อใช้ เลขทศนิยม
sign:
หนึ่งใน
      + -
text-literal:
      "text-literal-characteropt"
text-literal-character:
      text-literal-character text-literal-characteropt
text-literal-character:
      อักขระข้อความเดียว
      ลําดับ character-escape
      double-quote-escape-sequence
อักขระข้อความเดียว:

      อักขระใดๆ ยกเว้น " (U+0022) หรือ # (U+0023) ตามด้วย ( (U+0028)
double-quote-escape-sequence:
      "" (U+0022, U+0022)
null-literal:
      null
คํากริยา-สัญพจน์:
      #!"text-literal-characteropt"

Identifiers

รหัส:
      regular-identifier
      quoted-identifier
regular-identifier:
      available-identifier
      available-identifier dot-character regular-identifier
available-identifier:

      keyword-or-identifier ที่ไม่ใช่คําสําคัญ
keyword-or-identifier:
      letter-character
      underscore-character
      identifier-start-character identifier-part-character
identifier-start-character:
      letter-character
      underscore-character
identifier-part-character:
      identifier-part-character identifier-part-characteropt
identifier-part-character:
      letter-character
      decimal-digit-character
      underscore-character
      การเชื่อมต่ออักขระ
      combining-character (การรวมอักขระ)
      การจัดรูปแบบอักขระ
generalized-identifier:
      generalized-identifier-part
      generalized-identifier
ถูกคั่นด้วยช่องว่าง (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
dot-character:

      . (U+002E)
underscore-character:
      _ (U+005F)
letter-character:_
      อักขระ Unicode ของคลาส Lu, Ll, Lt, Lm, Lo, หรือ Nl
combining-character:
      อักขระ Unicode ของคลาส Mn หรือ Mc
decimal-digit-character:
      อักขระ Unicode ของคลาส Nd
connecting-character:
      อักขระ Unicode ของคลาส Pc
formatting-character:
      อักขระ Unicode ของคลาส Cf
quoted-identifier:
      #"text-literal-characteropt"

คําสําคัญและตัวระบุที่กําหนดไว้ล่วงหน้า

ไม่สามารถกําหนดตัวระบุและคําสําคัญที่กําหนดไว้ล่วงหน้าได้ สามารถใช้ตัวระบุที่มีการอ้างถึงในการจัดการตัวระบุที่จะชนกับคําสําคัญหรือตัวระบุที่กําหนดไว้ล่วงหน้า

คําสําคัญ: หนึ่งใน
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

ตัวดําเนินการและตัวคั่นเครื่องหมายวรรคตอน

operator-or-punctuator: หนึ่งใน
      , ; = < <= > >= <> + - * / & ( ) [ ] { } @ ? ?? => .. ...

ไวยากรณ์ไวยากรณ์

เอกสาร

เอกสาร:
      section-document
      expression-document

เอกสารส่วน

section-document:
      ส่วน
ส่วน:
      literal-attributesopt
sectionsection-name;section-members opt
section-name:
      ตัวระบุ
section-members:
      section-member section-membersopt
section-member:
      literal-attributesopt shared section-member-name
=expression;
section-member-name:
      รหัส

เอกสารนิพจน์

นิพจน์

expression-document:
      นิพจน์
นิพจน์:
      logical-or-expression
each-expression
      function-expression
      let-expression
      if-expression
      error-raising-expression
      error-handling-expression

นิพจน์เชิงตรรกะ

logical-or-expression:
      logical-and-expression
      logical-and-expression
orlogical-or-expression
logical-and-expression:
      is-expression
      logical-and-expression
andis-expression

นิพจน์ เป็น

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

      nullableopt primitive-type

นิพจน์ เป็น

as-expression:
      equality-expression
      as-expression
asnullable-primitive-type

นิพจน์ความเท่ากัน

equality-expression:
      relational-expression
      relational-expression
=equality-expression
      relational-expression
<>equality-expression

นิพจน์เชิงสัมพันธ์

relational-expression:
      additive-expression
      additive-expression
<relational-expression
      additive-expression
>relational-expression
      additive-expression
<=relational-expression
      additive-expression
>=relational-expression

นิพจน์ทางคณิตศาสตร์

additive-expression:
      multiplicative-expression
      multiplicative-expression
+additive-expression
      multiplicative-expression
-additive-expression
      multiplicative-expression
& _additive-expression
multiplicative-expression:
      metadata-expression
      metadata-expression
*multiplicative-expression
      metadata-expression
/multiplicative-expression

นิพจน์เมตาดาต้า

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

นิพจน์ยูนารี

unary-expression:
      type-expression

      +unary-expression
      -unary-expression
      notunary-expression

นิพจน์หลัก

primary-expression:
      literal-expression
      list-expression
      record-expression
      identifier-expression
      section-access-expression
      parenthesized-expression
      field-access-expression
      item-access-expression
      invoke-expression
      not-implemented-expression

นิพจน์สัญพจน์

literal-expression:
      ตัว อักษร

นิพจน์ตัวระบุ

identifier-expression:
      identifier-reference
identifier-reference:
      exclusive-identifier-reference
      inclusive-identifier-reference
exclusive-identifier-reference:
      ตัวระบุ
inclusive-identifier-reference:

      @ตัวระบุ

นิพจน์การเข้าถึงส่วน

section-access-expression:
      ตัวระบุ
!

นิพจน์ที่มีวงเล็บ

parenthesized-expression:
      (นิพจน์)

นิพจน์ที่ไม่ได้ดําเนินการ

not-implemented-expression:
      ...

นิพจน์การเรียก

invoke-expression:
      primary-expression
(argument-listopt)
argument-list:
      นิพจน์
      expression
,argument-list

นิพจน์รายการ

list-expression:
      {การเลือกรายการสินค้า}
item-list:
      สินค้า
      item-list
,
สินค้า:
      นิพจน์
      นิพจน์
..

นิพจน์เรกคอร์ด

record-expression:
      [การเลือกรายการเขตข้อมูล]
field-list:
      ฟิลด์
      field-list
,
ฟิลด์:
      นิพจน์ field-name
=
field-name:
      generalized-identifier
      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:
      นิพจน์

นิพจน์การเข้าถึงเขตข้อมูล

field-access-expression:
      field-selection
      implicit-target-field-selection
      ฉาย ภาพ
      implicit-target-projection
field-selection:
      primary-expression field-selector
ตัวเลือกเขตข้อมูล:
      required-field-selector
      optional-field-selector
required-field-selector:

      [field-name]
optional-field-selector:
      [field-name] ?
implicit-target-field-selection:
      field-selector
ฉาย ภาพ:
      primary-expression required-projection
      primary-expression optional-projection
required-projection:_
      [required-selector-list]
optional-projection:
      [required-selector-list] ?
required-selector-list:
      required-field-selector
      required-field-selector
,required-selector-list
implicit-target-projection:
      required-projection
      optional-projection

นิพจน์ฟังก์ชัน

function-expression:
      (parameter-listopt)return-typeopt=>function-body
function-body:
      นิพจน์
parameter-list:
      fixed-parameter-list
      fixed-parameter-list
,optional-parameter-list
      optional-parameter-list
fixed-parameter-list:
      พารามิเตอร์
      parameter
,fixed-parameter-list
พารามิเตอร์:
      parameter-name primitive-parameter-typeopt
parameter-name:
      ตัวระบุ
primitive-parameter-type:
      primitive-assertion
return-type:
      primitive-assertion
primitive-assertion:

      asnullable-primitive-type
optional-parameter-list:
      optional-parameter (พารามิเตอร์ทางเลือก)
      optional-parameter
,optional-parameter-list
optional-parameter:

      optionalพารามิเตอร์

นิพจน์แต่ละตัว

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

กําหนดนิพจน์

let-expression:
      letนิพจน์รายการinตัวแปร
รายการตัวแปร:
      ตัวแปร
      รายการตัวแปร
,
ตัว แปร:
      นิพจน์ชื่อ
=ตัวแปร
variable-name:
      รหัส

นิพจน์ ถ้า

if-expression:
      ifนิพจน์ ถ้า นิพจน์ จริง นิพจน์elseเท็จthen
หากเงื่อนไข:
      นิพจน์
true-expression:
      นิพจน์
false-expression:
      นิพจน์

นิพจน์ชนิด

type-expression:
      primary-expression

      typeprimary-type
ชนิด:
      primary-expression
      primary-type
primary-type:
      primitive-type
      record-type
      list-type
      function-type
      table-type
      nullable-type
primitive-type:
หนึ่งใน
      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:

      optionalopt field-name field-type-specificationopt
field-type-specification:

      =field-type
field-type:
      ชนิด
open-record-marker:

      ...
list-type:
      {item-type}
item-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:
      parameter-specification
optional-parameter-specification-list:
      optional-parameter-specification
      optional-parameter-specification
,optional-parameter-specification-list
optional-parameter-specification:

      optionalparameter-specification
parameter-specification:
      parameter-name parameter-type
parameter-type:
      การยืนยัน
ยืนยัน:

      asชนิด
table-type:

      tablerow-type
row-type:

      [field-specification-listopt]
nullable-type:
      nullableชนิด

นิพจน์การเกิดข้อผิดพลาด

error-raising-expression:
      error นิพจน์_

นิพจน์การจัดการข้อผิดพลาด

error-handling-expression:
      tryprotected-expression error-handleropt
protected-expression:
      นิพจน์
ตัวจัดการข้อผิดพลาด:
      otherwise-clause
      catch-clause
otherwise-clause:

      otherwisedefault-expression
default-expression:
      นิพจน์
catch-clause:
      catchcatch-function
catch-function:
      (parameter-nameopt=>)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:
      any-literal
      any-literal
,literal-item-list
any-literal:
      record-literal (ระเบียน-สัญพจน์)
      list-literal (รายการ-สัญพจน์)
      logical-literal (ตรรกะ-สัญพจน์)
      number-literal
      text-literal
      null-literal