如何为算术表达式构建AST树?

时间:2019-04-20 01:33:54

标签: powershell abstract-syntax-tree

我在这里聚集了大家,只问一个简单的问题。 我需要建立AST树。

  

例如,我的表达式为22 * x +(z-5)* 2。   如何使用Powershell使其更容易?

1 个答案:

答案 0 :(得分:0)

您无需手动构建AST-PowerShell会为您完成!

将表达式包装在脚本块中(当然必须在语法上是有效的PowerShell):

$AST = {22*$x+($z–5)*2}.Ast

Voila,$AST.Endblock现在拥有表达式的AST根元素。

您还可以通过将表达式作为字符串显式传递到Parser.ParseInput()来构造AST:

$AST = [System.Management.Automation.Language.Parser]::ParseInput('22*$x+($z–5)*2', [ref]$null, [ref]$null)