使用 transcrypt 将 python 编译为 javascript 时,我注意到语法错误报告比标准 python 语法错误报告更模糊。由于无法使用标准 python 编译器编译代码,因为它会由于 transcrypt 语法而引发语法错误,有没有办法获得类似于 python 编译器的更具体的语法错误报告?
问问题
156 次
1 回答
0
在某些情况下:是的,一般情况下:不是。
Transcrypt 语法是 Python 语法,因为两者都使用 CPython 的 ast 模块来解析源代码。但是 Transcrypt 程序可能会调用 JavaScript 代码,这在 CPython 中是行不通的。因此,虽然许多 Transcrypt 模块也可以与 CPython 一起使用,但直接使用 JavaScript 的则不能。对于这些模块,CPython 解释器的(语法和语义)错误报告不可用。
关于 __pragma__ 的注释。实际上,即使在语法上它们也只是函数调用,尽管它们在语义上是在编译时工作的。
请注意,使用 CPython 解释器运行 Transcrypt 模块是 Transcrypt 的背靠背自动测试系统的核心。如果没有这种可能性,就很难避免新版本中的回归错误。
正确的 Transcrypt 行为被简单地定义为“CPython 会做什么”......
于 2018-08-22T10:48:11.637 回答