词法语法
词法单位:
lexical-elementsopt
lexical-elements:
lexical-element lexical-elements选择
lexical-element:
空格
代币
注释
空格
空格:
带有 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-characters:
单行注释字符单行注释字符选择
单行注释字符:
除 new-line-character 之外的任何 Unicode 字符
delimited-comment:
/*
delimited-comment-text选择星号/
delimited-comment-text:
delimited-comment-section delimited-comment-textopt
delimited-comment-section:
/
星号选择 非斜杠或星号
星号:
*
选择星号
not-slash-or-asterisk:
除 * 或 / 之外的任何 Unicode 字符
令牌
令 牌:
标识符
关键字
串
operator-or-punctuator
字符转义序列
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
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:
#
文本
字面:
logical-literal
number-literal
text-literal
null-literal
verbatim-literal
logical-literal:
true
false
number-literal:
decimal-number-literal
hexadecimal-number-literal
decimal-digits:
decimal-digit decimal-digitsopt
十进制数字: 其中一个
0 1 2 3 4 5 6 7 8 9
hexadecimal-number-literal:
0x
十六进制数字
0X
十六进制数字
hex-digits:
十六进制数字选择
十六进制数字: 其中一个
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-partopt
decimal-digits exponent-partopt
exponent-part:
e
signopt decimal-digits
E
signopt decimal-digits
符号: 其中一个
+ -
text-literal:
"
文本文本字符选择"
text-literal-characters:
text-literal-character text-literal-charactersopt
text-literal-character:
single-text-character
character-escape-sequence
double-quote-escape-sequence
单文本字符:
除后跟 " (U+0022) 的 # (U+0023) 或 ( (U+0028) 外的任何字符
double-quote-escape-sequence:
"" (U+0022、 U+0022)
null-literal:
null
verbatim-literal:
#!"
文本文本字符选择"
标识符
标识符:
regular-identifier
quoted-identifier
regular-identifier:
available-identifier
available-identifier dot-character regular-identifier
available-identifier:
不是 keyword 的 keyword-or-identifier
keyword-or-identifier:
letter-character
underscore-character
identifier-start-character identifier-part-characters
identifier-start-character:
letter-character
underscore-character
identifier-part-characters:
identifier-part-character identifier-part-charactersopt
identifier-part-character:
letter-character
decimal-digit-character
underscore-character
connecting-character
combining-character
formatting-character
generalized-identifier:
generalized-identifier-part
通用标识符 仅用空白(U+0020) 通用标识符部分分隔
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:_
Lu、Ll、Lt、Lm、Lo 或 Nl 类的 Unicode 字符
combining-character:
Mn 或 Mc 类的 Unicode 字符
decimal-digit-character:
Nd 类的 Unicode 字符
connecting-character:
Pc 类的 Unicode 字符
formatting-character:
Cf 类的 Unicode 字符
quoted-identifier:
#"
文本文本字符选择"
关键字和预定义标识符
无法重新定义预定义的标识符和关键字。 带引号的标识符可用于处理与预定义标识符或关键字冲突的标识符。
关键字: 其中一个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:
section
section:
literal-attributesoptsectionsection-name;section-members opt
section-name:
标识符
section-members:
section-member section-members选择
section-member:
literal-attributesoptd sharedopt section-member-name=表达式 ;
section-member-name:
标识符
表达式文档
表达式
expression-document:
表达式
expression:
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-expressionorlogical-or-expression
logical-and-expression:
is-expression
logical-and-expressionandis-expression
Is 表达式
is-expression:
as-expression
is-expressionisprimitive-or-nullable-primitive-type
As 表达式
as-expression:
equality-expression
作为表达式as原始类型或可空原始类型
相等表达式
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-expressionmetaunary-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 表达式
section-access-expression:
标识符!标识符
带圆括号表达式
parenthesized-expression:
(
表达式)
Not-implemented 表达式
not-implemented-expression:
...
调用表达式
invoke-expression:
primary-expression(参数列表选择)
argument-list:
表达式
expression,argument-list
列表表达式
list-expression:
{
item-listopt}
item-list:
项
item-list,
item:
表达式
表达式..
记录表达式
record-expression:
[
field-listopt]
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
field-selector:
required-field-selector
optional-field-selector
required-field-selector:
[
field-name]
optional-field-selector:
[
field-name] ?
implicit-target-field-selection:
field-selector
projection:
primary-expression required-projection
primary-expression optional-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:
参数名称参数类型选择
parameter-name:
标识符
parameter-type:
原始或可为空的原始类型断言
return-type:
原始或可为空的原始类型断言
primitive-or-nullable-primitive-type-assertion:
as
原始或可为空的原始类型
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 表达式
let-expression:
let
variable-listin表达式
variable-list:
变量
variable-list,
variable:
variable-name=表达式
variable-name:
标识符
If 表达式
if-expression:
if
if-conditionthentrue-expressionelsefalse-expression
if-condition:
表达式
true-expression:
表达式
false-expression:
表达
类型表达式
type-expression:
primary-expression
type
primary-type
类型:
primary-expression
primary-type
primary-type:
原始类型或可空原始类型
record-type
list-type
function-type
table-type
可为空类型(nullable-type)
原始类型或可为空的原始类型:
nullable
opt 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:
as
类型
table-type:
table
row-type
行类型:
[
field-specification-listopt]
nullable-type:
nullable
类型
错误引发表达式
error-raising-expression:
error 表达_
错误处理表达式
error-handling-expression:
try
protected-expression error-handler选择
protected-expression:
表达式
error-handler:
otherwise-clause
catch-clause
otherwise-clause:
otherwise
default-expression
default-expression:
expression
catch-clause:
catch
catch-function
catch-function:
(
)
文本属性
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-item-list,
any-literal:
record-literal
list-literal
logical-literal
number-literal
text-literal
null-literal