Pygments, типы токенов
Основная идея подсветки кода, как это реализовано в Pygments, заключается в том, что исходный текст сначала разбивается на небольшие фрагменты — токены, а каждому токену присваивается тип токена, который определяет его семантическую роль в коде (например, ключевое слово, строка или комментарий).
Тип токена затем используется для определения того, как этот фрагмент кода должен быть стилизован (например, "красный и жирный" для ключевых слов).
В Pygments используется иерархическая система типов токенов, где каждый тип является подтипом более общего. Основные (глобальные) типы токенов и их подтипы включают:
Основные типы токенов Pygments
Общий тип токена (Parent Token) Примеры подтипов и их назначение
Token.Keyword (Ключевое слово) Ключевые слова языка программирования.
- Keyword.Builtin (Встроенное ключевое слово)
- Keyword.Control (Управляющая конструкция, напр., if, for)
- Keyword.Type (Ключевое слово типа, напр., class, def)
Token.Name (Имя) Идентификаторы, переменные, имена функций.
- Name.Function (Имя функции)
- Name.Variable (Имя переменной)
- Name.Class (Имя класса)
Token.Literal (Литерал) Постоянные значения в коде.
- Literal.String (Строковый литерал, напр., "Hello")
- Literal.Number (Числовой литерал)
- Literal.Number.Integer (Целое число)
- Literal.Number.Float (Число с плавающей запятой)
Token.Comment (Комментарий) Блоки комментариев в коде.
- Comment.Single (Однострочный комментарий)
- Comment.Multi (Многострочный комментарий)
- Comment.Doc (Документирующий комментарий)
Token.Operator (Оператор) Символы, выполняющие операции (напр., +, -, *, ==).
Token.Punctuation (Пунктуация) Разделители и знаки препинания (напр., [, (, ,, ;).
Token.Text (Текст) Любые текстовые данные, не соответствующие другим токенам.
- Text.Whitespace (Пробелы)
Token.Generic (Общий) Используется для разметки специального контента, например, в выводе терминала.
- Generic.Heading (Заголовок)
- Generic.Error (Сообщение об ошибке)
Token.Error (Ошибка) Токен, представляющий синтаксическую ошибку, обнаруженную лексером.
Token.Other (Прочее) Специальные токены для данных, не соответствующих парсеру (напр., HTML-разметка внутри PHP-кода).