解析 – 什么是“主要表达”?

在Power
Shell语言规范中,语法有一个名为“Primary Expression”的术语.

primary-expression:
    value
    member-access
    element-access
    invocation-expression
    post-increment-expression
    post-decrement-expression

在语义上,什么是用于描述的主要表达?

最佳答案 据我了解,这有两个部分:

>正式语法分解表达式之类的东西,因此运算符优先级是隐式的.

例如.如果语法有

expression:
  value
  expression * expression
  expression + expression
  …

需要有一个单独的机制来定义*具有更高的优先级.这个
当使用工具将语法直接转换为tokeniser / parser时,这一点变得非常重要
>有许多不同的特定规则(考虑PowerShell中的运算符数量)使用较少的规则将更难理解,因为每个规则都会很长.

1我怀疑PowerShell不是这种情况,因为它是高度上下文敏感的(表达式与命令模式,然后考虑调用非内置的可执行文件).但是这种跨语言的语法往往有很多共同之处,所以风格也可以被延续(不要重新发明轮子).

点赞