PythonAst 和 LanguageContext

PythonAst and LanguageContext

有人熟悉 IronPython 内部结构,特别是 PythonAst 和 LanguageContext 类 吗?

我的应用程序确实编译了一个 Python 脚本源,然后查看 PythonAst 以查找变量。虽然我可以成功找到全局变量,但我无法获取函数的局部变量。有可能吗?

另一个问题是还要找到变量的 current 类型,因为它可以从编译代码及其当前值中推断出来?

执行脚本后,我可以使用 ScriptScope 结构,或者在调试时我可以为变量及其值解析调试框架,但我也想在编译时这样做,因为用户构造代码。这可能吗?

谢谢。

与此同时,我在另一个论坛上获得了帮助并找到了解决方案。基本上是这样的:

FunctionDefinition 的主体很可能是 SuiteStatement(它只是语句的集合)。局部变量将使用 AssignmentStatements 定义,其中左侧是 NameExpressions 数组。从那里你可以通过收集所有的 NameExpressions 来弄清楚本地人是什么。