Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Внутри CPython гид по интерпретатору Python.pdf
Скачиваний:
6
Добавлен:
07.04.2024
Размер:
8.59 Mб
Скачать

Выводы    71

$ ./python -d test_tokens.py

>file[0-0]: statements? $

>statements[0-0]: statement+

>_loop1_11[0-0]: statement

>statement[0-0]: compound_stmt

...

+ statements[0-10]: statement+ succeeded!

+file[0-11]: statements? $ succeeded!

Как видите, proceed выделяется как ключевое слово. В следующей главе вы увидите, как при выполнении двоичного файла Python используется tokenizer и что происходит в дальнейшем для выполнения вашего кода.

Чтобы очистить код, отмените изменения в Grammar python.gram, снова сгенерируйте грамматику, а затем проведите очистку сборки и повторную компиляцию.

В macOS и Linux это делается так:

$ git checkout -- Grammar/python.gram $ make regen-pegen

$ make -j2 -s

ВWindows используются следующие команды:

>git checkout -- Grammar/python.gram

>build.bat --regen

>build.bat -t CleanAll

>build.bat -t Build

ВЫВОДЫ

В этой главе вы познакомились с определениями грамматики Python и генератором парсеров. В следующей главе на основе этих знаний будет построен более сложный элемент синтаксиса — оператор «почти равно».

На практике любые изменения в грамматике Python необходимо тщательно продумывать и обсуждать. Для этого есть две причины:

1.Избыток языковых средств или сложная грамматика будут противоречить кредо Python как простого и удобочитаемого языка.

2.Изменения грамматики создают обратные несовместимости, которые усложняют работу всех разработчиков.

Книги для программистов: https://t.me/booksforits

72    Грамматика и язык Python

Если ключевой Python-разработчик предлагает изменения в грамматике, они должны быть оформлены в виде документа PEP (Python Enhancement Proposal). Все PEP нумеруются и включаются в индекс PEP. PEP 5 документирует рекомендации для развития языка и указывает, что изменения должны предлагаться в виде PEP.

Предлагаемые, отклоненные и принятые PEP для будущих версий CPython можно найти в индексе PEP1. Участники, не входящие в группу ключевых разработчиков, также могут предлагать изменения в языке через список рассылки python-ideas2.

Когда по поводу PEP будет достигнут консенсус, а черновая версия примет окончательную форму, руководящий совет должен принять или отклонить предложение. Мандат руководящего совета, определенный в PEP 13, утверждает, что члены совета должны работать над «поддержанием качества и стабильности языка Python и интерпретатора CPython».

1 https://www.python.org/dev/peps/.

2 https://www.python.org/community/lists/.

Книги для программистов: https://t.me/booksforits