将JavaScript输入和退出方法转换为Python

时间:2017-10-12 16:13:09

标签: javascript python compiler-construction translate

我正在尝试将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

1 个答案:

答案 0 :(得分:0)

您将在下一个文件" 4-transformer.js"中找到它。 enterexit只是methods中对象visitor的方法。注意代码的和平:

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

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