我有这段代码(取自 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/