为什么n +++ n有效而n ++++ n无效?

为什么n +++ n有效而n ++++ n无效?,第1张

为什么n +++ n有效而n ++++ n无效?

首先使用最大修改规则将文件标记化(转换为标记序列)-始终获得尽可能长的有效标记。您的文本将转换为以下顺序:

n ++ ++ n

这是无效的表达。

根据JLS§3.2:

3.2。词汇翻译

使用以下三个词法转换步骤,将原始Unipre字符流转换为标记序列:

  1. 将Unipre字符原始流中的Unipre转义(第3.3节)转换为相应的Unipre字符。
    uxxxx格式的Unipre转义符,其中xxxx是十六进制值,表示编码为xxxx的UTF-16代码单元。此翻译步骤允许任何程序仅使用ASCII字符表示。

  2. 将步骤1产生的Unipre流转换为输入字符和行终止符流(第3.4节)。

3.
将步骤2产生的输入字符和行终止符流转换为一系列输入元素(§3.5),该元素在空格(§3.6)和注释(§3.7)之后被丢弃,由标记(§3.5)组成它们是句法语法(第2.3节)的结尾符号。

即使结果最终不能正确编写程序,而每个词汇翻译都可以使用,也要在每个步骤中使用最长的翻译。

(因此,输入字符

a--b
被标记为(§3.5)为
a, --, b
,即使标记化
a, -, -,b
可能是语法正确的程序的一部分,也不是任何语法正确的程序的一部分。)



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5430072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存