Following system colour scheme - Python 增强提案 Selected dark colour scheme - Python 增强提案 Selected light colour scheme - Python 增强提案

Python 增强提案

PEP 306 – 如何修改 Python 语法

作者:
Michael Hudson <mwh at python.net>, Jack Diederich <jackdied at gmail.com>, Alyssa Coghlan <ncoghlan at gmail.com>, Benjamin Peterson <benjamin at python.org>
状态:
已撤回
类型:
信息性
创建:
2003年1月29日
更新历史:
2003年1月30日

目录

注意

此 PEP 已移至 Python 开发指南 [1]

摘要

修改 Python 语法不仅仅是编辑 Grammar/GrammarPython/compile.c。本 PEP 的目标是列出也必须修复的位置的清单。

它可能是不完整的。如果您发现有遗漏,请随时添加 - 您不会冒犯作者的所有权意识。否则,提交错误或补丁并将其分配给 mwh。

本 PEP 不打算成为 Python 语法黑客的说明手册,原因如下。

基本原理

人们一直都在犯同样的错误;在有人注意到 [2] 添加地板除运算符 (//) 破坏了 parser 模块之前,花费了超过一年多的时间。

清单

  • Grammar/Grammar:好的,您可能已经想到了这一点 :)
  • Parser/Python.asdl 可能需要更改以匹配 Grammar。运行 make 以重新生成 Include/Python-ast.hPython/Python-ast.c
  • Python/ast.c 将需要更改以创建与 Grammar 更改相关的 AST 对象。Lib/compiler/ast.py 将需要对纯 Python AST 对象进行匹配更改。
  • Parser/pgen 需要重新运行以重新生成 Include/graminit.hPython/graminit.c。(make 应该为您处理此问题。)
  • Python/symbtable.c:这处理在编译过程之前立即发生的符号收集过程。
  • Python/compile.c:您需要创建或修改 compiler_* 函数以生成您的产生的操作码。
  • 您可能需要重新生成 Lib/symbol.py 和/或 Lib/token.py 和/或 Lib/keyword.py
  • parser 模块。将一些新的语法添加到 test_parser 中,在 Modules/parsermodule.c 上进行测试,直到它通过。
  • test_grammar.py 中添加一些新语法的用法。
  • compiler 包。一个很好的测试是使用 compiler 包编译标准库和测试套件,然后检查它是否运行。请注意,这只需要在 Python 2.x 中完成。
  • 如果您已经修改了 Python 的令牌结构,那么 Lib/tokenizer.py 库模块将需要更改。
  • 某些更改可能需要调整库模块 pyclbr
  • 必须编写文档!
  • 在所有内容都签入后,您可能会看到对 Python/Python-ast.c 的新更改。这是因为此(生成的)文件包含从中生成源代码的 SVN 版本。无法避免这种情况;您只需单独提交此文件即可。

参考文献


来源: https://github.com/python/peps/blob/main/peps/pep-0306.rst

上次修改: 2023年10月11日 12:05:51 GMT