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

Выводы    109

*/

REQ(n, comp_op); if (NCH(n) == 1) {

n = CHILD(n, 0); switch (TYPE(n)) { case LESS:

return Lt; case GREATER:

return Gt;

case ALMOSTEQUAL: //

Добавьте эту строку для обнаружения лексемы

return AlE; //

Эта строка возвращает узел AST

На этой стадии токенизатор и AST могут разобрать код, но компилятор не будет знать, как обработать оператор. Чтобы протестировать представление AST, вызовите ast.parse() и проанализируйте первый оператор в выражении:

>>>import ast

>>>m = ast.parse('1 ~= 2')

>>>m.body[0].value.ops[0]

<_ast.AlE object at 0x10a8d7ee0>

Это экземпляр нашего типа оператора сравнения AlE, и AST правильно разбирает код.

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

ВЫВОДЫ

Гибкость CPython и низкоуровневый API выполнения делают его идеальным кандидатом на роль встроенного скриптового движка. CPython используется во многих UI-приложениях, включая компьютерные игры, 3D-графику и системы автоматизации.

Процесс работы интерпретатора гибок и эффективен. Теперь вы получили представление о том, как он функционирует, и мы можем перейти к изучению компилятора.

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