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

7

嗨, Delphi Web Script是非常棒的脚本引擎。我正在尝试在我的项目中使用它。但是,我不确定是否可能列举出所有可用于脚本引擎的类型、函数等,例如,我想要一个列表,其中包含我可以在脚本中使用的所有方法(包括所有内部和外部类型、函数、过程等)。Fast script有treeview组件,它公开了您可以使用的所有类型。我在dwscript中寻找类似的东西。提前感谢。

1个回答

2
您会在与每个编译的DWScript实体相关联的符号表(TSymbolTable)中找到所有类型,编译的程序、编译的函数/方法以及具有作用域的块中都有一个。如果您想枚举特定范围内可见的所有符号,不仅需要查看特定TSymbolTable包含的内容,还需要查看其父级(也是TSymbolTable),其中保存了来自父级范围(包括单元和库符号)的符号。对于类方法和类型,您可以在TClassSymbol的Members[]中找到它们。DWS2 repository on sourceforge 包含一些示例,尚未转换为DWS2.x存储库,但应该相当容易适应。

感谢您的答案。我通过枚举编译后的IdwsProgram 表成功获取了所有内容。但是,是否有可能在不编译我的脚本的情况下获取相同的表格?如果无法实现,那也没有关系,因为我发现即使脚本编译出错,它仍然可以正常工作。但仍然很有意思想知道如何实现。 - Linas
@Linas:作为一个有趣的话题,你是否创建了任何简单的带有DWS断点的IDE?我即将替换我的代码中可怕的脚本引擎,真的很需要一个简单的IDE+断点示例。 - Brian Frost
@Brian 我刚开始在我的应用程序中集成dwscript。目前我只有一个非常简单的脚本IDE,没有断点等功能。但是我计划以后添加更多功能。 - Linas
如果您想独立于脚本(即仅限于库中的符号)获取符号列表,则可以编译一个空脚本。 - Eric Grange

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接