【问题标题】:dwscript - how to enumerate all available types?dwscript - 如何枚举所有可用类型?
【发布时间】:2011-05-30 20:42:19
【问题描述】:

嘿, Delphi Web Script 是一个非常棒的脚本引擎。我正在尝试在我的一个项目中使用它。但是,我不确定是否可以枚举脚本引擎中可用的所有类型、函数,例如我想要一个列表,其中包含我在编写脚本时可以使用的所有方法(这包括所有内部和外部类型、函数、过程等)。快速脚本具有树视图组件,它公开了您可以使用的所有类型。我正在 dwscript 中寻找类似的东西。提前致谢。

【问题讨论】:

    标签: delphi dwscript


    【解决方案1】:

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

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

    DWS2 repository on sourceforge 包含一些尚未在 DWS2.x 存储库中转换的示例,但应该相当容易适应。

    【讨论】:

    • 感谢您的回答。我设法通过枚举已编译的 IdwsProgram 表来获取所有内容。但是是否有可能在不编译我的脚本的情况下获得同一张表?这没什么大不了的,如果不可能的话,我可以忍受,因为我发现即使脚本编译出错,它也能工作。但是,知道会很有趣。
    • @Linas:有趣的是,您是否以带断点的简单 IDE 的方式为 DWS 创建了任何简洁的东西?我很快就会在我的代码中替换一个糟糕的脚本引擎,并且非常感谢一个简单的 IDE+断点示例。
    • @Brian 我才刚刚开始将 dwscript 集成到我的应用程序中。目前我只有非常简单的脚本 IDE,没有断点等。但我计划稍后为其添加更多功能。
    • 如果你想要一个独立于你的脚本的符号列表(即只有库中的那些),你可以编译一个空脚本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    相关资源
    最近更新 更多