ไวยากรณ์รวม
ไวยากรณ์เลกซิคัล
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-attributesoptsection
section-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-expressionor
logical-or-expression
logical-and-expression:
is-expression
logical-and-expressionand
is-expression
นิพจน์ เป็น
is-expression:
as-expression
is-expressionis
primitive-or-nullable-primitive-type
นิพจน์ เป็น
as-expression:
equality-expression
as-expressionas
primitive-or-nullable-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-expressionmeta
unary-expression
นิพจน์ยูนารี
unary-expression:
type-expression
+
unary-expression
-
unary-expression
not
unary-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 parameter-typeopt
parameter-name:
ตัวระบุ
parameter-type:
primitive-or-nullable-primitive-type-assertion
return-type:
primitive-or-nullable-primitive-type-assertion
primitive-or-nullable-primitive-type-assertion:
as
primitive-or-nullable-primitive-type
optional-parameter-list:
optional-parameter (พารามิเตอร์ทางเลือก)
optional-parameter,
optional-parameter-list
optional-parameter:
optional
พารามิเตอร์
นิพจน์แต่ละตัว
each-expression:
each
each-expression-body
each-expression-body:
function-body
กําหนดนิพจน์
let-expression:
let
นิพจน์รายการin
ตัวแปร
รายการตัวแปร:
ตัวแปร
รายการตัวแปร,
ตัวแปร:
นิพจน์ชื่อ=
ตัวแปร
variable-name:
รหัส
นิพจน์ ถ้า
if-expression:
if
หากเงื่อนไขthen
true-expressionelse
false-expression
หากเงื่อนไข:
สีหน้า
true-expression:
สีหน้า
false-expression:
สีหน้า
นิพจน์ชนิด
type-expression:
primary-expression
type
primary-type
ประเภท:
primary-expression
primary-type
primary-type:
primitive-or-nullable-primitive-type
record-type
list-type
function-type
table-type
nullable-type
primitive-or-nullable-primitive-type:
nullable
opt primitive-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:
optional
opt 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:
optional
parameter-specification
parameter-specification:
parameter-name parameter-type
parameter-type:
type-assertion
type-assertion:
as
ประเภท
table-type:
table
row-type
row-type:
[
field-specification-listopt]
nullable-type:
nullable
ประเภท
นิพจน์การเกิดข้อผิดพลาด
error-raising-expression:
error
สีหน้า_
นิพจน์การจัดการข้อผิดพลาด
error-handling-expression:
try
protected-expression error-handleropt
protected-expression:
สีหน้า
ตัวจัดการข้อผิดพลาด:
otherwise-clause
catch-clause
otherwise-clause:
otherwise
default-expression
default-expression:
สีหน้า
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:
any-literal
any-literal,
literal-item-list
any-literal:
record-literal (ระเบียน-สัญพจน์)
list-literal (รายการ-สัญพจน์)
logical-literal (ตรรกะ-สัญพจน์)
number-literal
text-literal
null-literal