将 JavaScript 进入和退出方法翻译成 Python

Translate JavaScript enter and exit methods into Python

我正在尝试将 James Kyle 的 The Super Tiny Compiler 从 JavaScript 翻译成 Python。

但我无法理解 JavaScript 中的进入和退出方法的作用:

1)

// If there is an `enter` method for this node type we'll call it with the
// `node` and its `parent`.
if (methods && methods.enter) {
  methods.enter(node, parent);
}

2)

// If there is an `exit` method for this node type we'll call it with the
// `node` and its `parent`.
if (methods && methods.exit) {
  methods.exit(node, parent);
}

如何将这两种方法转换为 Python? 谢谢。

Here's a link to the Tiny Compiler code

您将在下一个文件“4-tranformer.js”中找到它。 enterexit 只是 visitor 中对象 methods 的方法。注意这段平安代码:

// We start by testing for the existence of a method on the visitor with a
// matching `type`.
let methods = visitor[node.type];

在您发布的代码中,我们只检查 methods 对象是否有方法 exitenter,如果有则调用它们。