Delphi dwscript-如何枚举所有可用类型?

Delphi dwscript-如何枚举所有可用类型?,delphi,dwscript,Delphi,Dwscript,哎,, DelphiWeb脚本是一个非常棒的脚本引擎。我正试图在我的一个项目中使用它。但是,我不确定是否可以枚举脚本引擎中可用的所有类型和函数,例如,我希望有一个列表,列出我在编写脚本时可以使用的所有方法(包括所有内部和外部类型、函数、过程等)。Fast脚本具有treeview组件,该组件公开了您可以使用的所有类型。我正在dwscript中寻找类似的内容。提前感谢。您将在附加到每个已编译DWScript实体的符号表(TSymbolTable)中找到所有类型,在已编译的程序、已编译的函数/方法以及

哎,,
DelphiWeb脚本是一个非常棒的脚本引擎。我正试图在我的一个项目中使用它。但是,我不确定是否可以枚举脚本引擎中可用的所有类型和函数,例如,我希望有一个列表,列出我在编写脚本时可以使用的所有方法(包括所有内部和外部类型、函数、过程等)。Fast脚本具有treeview组件,该组件公开了您可以使用的所有类型。我正在dwscript中寻找类似的内容。提前感谢。

您将在附加到每个已编译DWScript实体的符号表(TSymbolTable)中找到所有类型,在已编译的程序、已编译的函数/方法以及具有作用域的块中都有一个

如果要枚举特定作用域中可见的所有符号,您不仅要查看特定TSymbolTable包含的内容,还要查看它的父级(也可以是TSymbolTable),它们包含来自父作用域的符号(包括单元和库符号)。对于类方法和类型,您可以在TClassSymbol的成员[]中找到它们


包含一些尚未在DWS2.x存储库中转换的示例,但是应该可以直接进行调整。

谢谢您的回答。我通过枚举已编译的IdwsProgram表来获取所有信息。但是不编译脚本就可以得到相同的表吗?这没什么大不了的,如果不可能的话,我可以接受,因为我发现即使脚本编译有错误,它也能工作。不过,知道这一点还是很有意思的。@Linas:有趣的是,您是否创建了一个简单的IDE,其中包含DWS断点?我很快就会在我的代码中替换一个糟糕的脚本引擎,并且非常希望有一个简单的IDE+断点示例。@Brian我只是开始在我的应用程序中集成dwscript。目前我只有一个非常简单的没有断点的脚本IDE,等等。但我计划稍后向它添加更多功能。如果你想要一个独立于脚本的符号列表(即,只有库中的符号),你可以编译一个空脚本。