Оценка лексемы в PythonPython

Программы на Python
Anonymous
Оценка лексемы в Python

Сообщение Anonymous »

Википедия проводит четкое различие между понятием лексемы и понятием токена:

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


Однако лексема — это всего лишь строка символов, известная быть определенного типа (например, строковый литерал, последовательность букв). Для создания токена лексическому анализатору необходим второй этап — оценщик, который обрабатывает символы лексемы для получения значения. Тип лексемы в сочетании с ее значением и представляет собой токен, который может быть передан анализатору.

Насколько я понимаю, это означает, что токен является результатом сопоставления с , где категория в случае Python принадлежит набору {идентификатор, ключевое слово, литерал, оператор, разделитель, NEWLINE, INDENT, DEDENT}.
Я хочу лучше понять, что означает оценка лексемы в случае с лексемой категории литерал. Можем ли мы увидеть результат такой оценки, просто введя лексему в REPL Python?
Например, если я наберу следующую строковую литеральную лексему

Код: Выделить всё

>>> '''some
... text'''
Я получаю вывод «некоторый\n текст» — можем ли мы назвать эту строку значением приведенной выше лексемы (обратите внимание на частичное удаление кавычек и вставку `\ символ n)?
А если я наберу следующую числовую литеральную лексему

Код: Выделить всё

>>> 0b101
Я получаю результат 5 – можем ли мы назвать это число значением приведенной выше лексемы?

Подробнее здесь: https://stackoverflow.com/questions/785 ... -in-python

Вернуться в «Python»