Power Query中的"令牌"是什么?

您所在的位置:网站首页 pine令牌 Power Query中的"令牌"是什么?

Power Query中的"令牌"是什么?

#Power Query中的"令牌"是什么?| 来源: 网络整理| 查看: 265

Power Query处理数据的过程中,我们经常会遇到像下图这种错误提示

错误提示

那么, "应为令牌Literal“是什么意思呢?

MS官方文档指出,令牌是标识符、关键字、文本、运算符或标点符号。 空白和注释用于分隔标记,但不会将其视为令牌。

可以看出, Expression.SyntaxError是指语法错误,错误的内容为:标识符、关键字、文本、运算符或标点符号不正确。根据这一解释,再结合错误位置指示,我们大致就可以确定错误的位置和内容。

MS文档和PowerQuery错误提示中的令牌Literal我理解就是M代码中除去空格和注释外的所有内容。

🔷 错误位置指示的内容,我在2022-4-17视频《PowerQuery Expression.SyntaxError提示解释,查找错误位置和排除方法》有讲解。

https://www.bilibili.com/video/BV1Yu411y7d5/

下面,我们来一起了解一下令牌包含内容的含义或解释。

一、出现在令牌错误提示中的英文

 🔷 Literal  英 [ˈlɪtərəl]   美 [ˈlɪtərəl]   

adj:照字面的;原义的;逐字的;平实的,避免夸张

n:[印]错排,文字上的错误

M语言中Literal token可以译作文本,就是我们写的M语言代码中除去空白和注释的所有内容。

 🔷token 英[ˈtəʊkən];美[ˈtoʊkən]

n. 代币; (用以启动某些机器或用作支付方式的)专用辅币; 代价券; 赠券; 礼券; 象征,标志,表示,信物;

adj. 装样子的; 装点门面的; 敷衍的; 作为标志的; 象征性的(付款或费用);

M语言中token译作令牌,其实就是标志的意思

 🔷operator  英[ˈɒpəreɪtə(r)];美[ˈɑːpəreɪtər]

n. 操作人员; 接线员; 技工; 电话员; (某企业的)经营者,专业公司; 投机取巧者; 算子;

M语言中operator译作  运算符

🔷 punctuator  n. 标点符号;标点

🔷 Keyword    n. 关键字

🔷 Identifier   n.标识符

🔷 verbatim    英[vɜːˈbeɪtɪm];美[vɜːrˈbeɪtɪm]

n. 一字不差的报道; 逐字翻译;  adj./adv. 逐字的/地; 一字不差的/地;

🔷 exponent  英[ɪkˈspəʊnənt];美[ɪkˈspoʊnənt]

n. (观点、理论的)拥护者,鼓吹者,倡导者; (某种活动的)能手,大师; 指数; 幂;  adj. 讲解的;

二、分类释义

1、标识符(identifier):标识符是用于引用值的名称。 标识符可以是常规标识符,也可以是带引号的标识符。

🔷 常规标识符 (regular-identifier)

🔷 带引号的标识符(quoted-identifier):带引号的标识符可用于允许零个或多个 Unicode 字符的任何序列用作标识符,包括关键字、空格、注释、运算符和标点符号,如  #"text-literal-charactersopt"。

注意,转义序列和用于转义引号的双引号可以在带引号的标识符中使用,就像在 text-literal 中一样 。

以下示例对包含空格字符的名称使用标识符引号:

    #"1998 Sales" = 1000, 

    #"1999 Sales" = 1100, 

    #"Total Sales" = #"1998 Sales" + #"1999 Sales"

]

以下示例使用标识符引号将 + 运算符包含在标识符中:

    #"A + B" = A + B, 

    A = 1, 

    B = 2 

]

2、通用化标识符(generalized-identifier)用于命名和访问字段的标识符称为通用标识符。

在 M 中有两个地方没有由包含空格或关键字或数字文字的标识符引起的歧义。 这些位置是记录文本中记录字段的名称,在字段访问运算符 ([ ]) 中,M 允许这样的标识符,而不必使用带引号的标识符。也就是在字段名中包含空格或关键字或数字文字是不会出现错误的。

    Data = [ Base Line = 100, Rate = 1.8 ], 

    Progression = Data[Base Line] * Data[Rate]

]

3、关键字(keyword) 关键字是保留的类似标识符的字符序列,不能用作标识符,除非使用标识引用机制或允许使用通用标识符。

Power Query关键字如下,这些关键字有特殊定义。

 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

4、运算符和标点符号(operator-or-punctuator)

Power Query中有多种运算符和标点符号。 表达式中使用运算符来描述涉及一个或多个操作数的操作。 例如,表达式 a + b 使用 + 运算符添加两个操作数 a 和 b。 标点符号用于分组和分隔。

Power Query运算符和标点符号有

 , ; = < >= + - * / & ( ) [ ] { } @ ! ? ?? => .. ...

5、文本(literal) 文本是值的源代码表示形式。

分为以下五类

      逻辑文本:logical-literal

      数字文本:number-literal

      文字文本:text-literal

      空文本:null-literal

      逐字文本:verbatim-literal

🔷 null 文本

null 文本用于写入 null 值。 null 值表示不存在的值。

🔷 逻辑文本

逻辑文本用于写入值 true 和 false,并生成逻辑值。

逻辑文本只有两个:true 和 false

🔷 数字文本

数字文字用于写入数值并生成数值。包括十进制数字(decimal-number-literal),十六进制数字(hexadecimal-number-literal),可以为是正数,也可以是负数。

通过在十六进制数字前面加上字符 0x,可以十六进制格式指定一个数字。 例如:

0xff // 255

请注意,如果数字文本中包含小数点,则它后面必须至少有一个数字。 例如,1.3 是数字文本,但 1. 和 1.e3 不是。

🔷 文本文字

文本文字用于写入 Unicode 字符序列并生成文本值。包括字符串 (text-literal-characters)和单个文本 (text-literal-character)。

单个文本 又包括:

      单个文本字符 single-text-character : 除后跟 ( (U+0028) 的 " (U+0022) 或 # (U+0023) 外的任何字符

      字符转义序列 character-escape-sequence  :可使用字符转义序列产生式在文本值中写入字符,而无需在文档中将它们直接编码为 Unicode 字符。 例如,回车和换行可以用文本值写入:"Hello world#(cr,lf)"

      双引号转义序列 double-quote-escape-sequence: "" (U+0022, U+0022),若要在文本值中包含引号,请重复使用引号,如:"The ""quoted"" text" // The "quoted" text

 🔷 逐字文本

逐字文本用于存储用户作为代码输入但无法正确分析为代码的 Unicode 字符序列, 在运行时,它会生成一个错误值。

      #!"text-literal-charactersopt"



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3