【问题标题】:When compiling python using transcrypt is it possible to get standard python error logging?使用 transcrypt 编译 python 时,是否可以获得标准的 python 错误日志记录?
【发布时间】:2019-01-08 07:29:13
【问题描述】:

当使用 transcrypt 将 python 编译为 javascript 时,我注意到语法错误报告比标准 python 语法错误报告更模糊。由于无法使用标准 python 编译器编译代码,因为它会由于 transcrypt 语法而引发语法错误,有没有办法获得类似于 python 编译器的更具体的语法错误报告?

【问题讨论】:

  • Transcrypt 真的有任何普通 Python 没有的语法吗?到目前为止我还没有看到。我见过的最接近的是__pragma__,它是完全有效的Python 语法,不会对compileast.parse 等函数造成任何问题。

标签: python transcrypt


【解决方案1】:

在某些情况下:是,一般情况下:否。

Transcrypt 语法是 Python 语法,因为两者都使用 CPython 的 ast 模块来解析源代码。 但是 Transcrypt 程序可能会调用 JavaScript 代码,这在 CPython 中是行不通的。 因此,虽然许多 Transcrypt 模块也可以与 CPython 一起使用,但直接使用 JavaScript 的则不能。 对于这些模块,CPython 解释器的(语法和语义)错误报告不可用。

关于 __pragma__ 的注释。实际上,即使在语法上它们也只是简单的函数调用,尽管它们在语义上是在编译时工作的。

请注意,使用 CPython 解释器运行 Transcrypt 模块是 Transcrypt 的背靠背自动测试系统的核心所在。如果没有这种可能性,就很难避免新版本中的回归错误。

正确的 Transcrypt 行为被简单地定义为“CPython 会做什么”...

【讨论】:

    猜你喜欢
    • 2019-07-10
    • 2018-05-27
    • 2011-10-19
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 2017-01-31
    • 1970-01-01
    • 2018-08-03
    相关资源
    最近更新 更多