是否有 PowerShell 5 或更高版本的语言规范文档

Is there a language specification document for PowerShell 5 or later

您好,我正在为 PowerShell 开发 ANTLR4 语法,正在寻找 PowerShell 5 或更高版本的语言规范。

目前语法基于 Microsoft 的 Powershell 3 规范文档 (https://www.microsoft.com/en-us/download/details.aspx?id=36389)。

如果没有,我将非常感谢:
A) 从版本 3 开始的任何规范、语法、解析规则或语言更改列表。
B) 一组 Powershell 5 或 6 个示例,因此如果没有语言规范,我可以从中推导出规则。

PowerShell 规范在 V3 之后从未更新,因此您最好的资源是实际的 PowerShell 源代码(考虑到只有一种 PowerShell 实现,这可以说是更好的资源。)

语言规范中的大部分语法是从 PowerShell 源代码中提取的。您可以通过搜索以 //G 开头的评论来从源代码中提取语法,例如https://github.com/PowerShell/PowerShell/blob/037e12eddc850393d2538a26abad4a67e048a989/src/System.Management.Automation/engine/parser/Parser.cs#L766

请注意,此语法不涵盖如何标记化。标记化是上下文敏感的,在任何类型的 BNF 中都无法很好地捕获。语言规范是最有用的努力,但可能不足以构建 100% 兼容的 PowerShell 解析器。

PowerShell 的令牌化在某些地方非常困难,希望能够访问源代码有所帮助。