smalltalk - 以编程方式获取方法内对象的执行顺序?

标签 smalltalk pharo squeak

我有这段代码(取自 ProfStef,但可以是任何类的任何方法)。我怎么办 以编程方式获取 Squeak/Pharo 执行对象的顺序。

我知道 smalltalk 文档中的执行顺序,但是如果我在正在构建的应用程序中需要这些信息怎么办。本质上是用它来构建执行图,以显示代码外观和执行方式之间的差异。

附注。我需要大规模完成这件事……我无法手动完成。

tutorial: aTutorialClass lesson: aSelector 
    | tutorial | 
    tutorial := aTutorialClass new. 
    self player tutorial: tutorial. 
    self tutorial: aTutorialClass lessonAt: (tutorial indexOfLesson: aSelector).

输出将是类似于此的树

做这件事

另一个对象 [做某事]

finalobject [ anotherobject [something do this] ]。//这是原始代码的样子。

最佳答案

查看我们的 AST interpreter这将使您对 Smalltalk 代码的执行进行细粒度的控制。

使用底层 AST 作为执行格式,很容易将当前执行的代码映射回源代码。

关于smalltalk - 以编程方式获取方法内对象的执行顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14520133/

相关文章:

smalltalk - Smalltalk中的self和self有什么区别?

smalltalk - Smalltalk 中重复的组合

smalltalk - 有没有使用Squeak Smalltalk的大型商业项目?

smalltalk - 如何在 Pharo 4.0 中加载 Magritte3 和 Seaside 3.0?

smalltalk - pharo smalltalk 窗口关闭

model-view-controller - 在 squeak 中编写 GUI

Smalltalk动态查找优化

smalltalk - 具有完美功能集的 Smalltalk 实现

smalltalk - 在Pharo Smalltalk中向后迭代集合

unit-testing - 从 SUnit 迁移到 Phexample