Pygments, типы токенов при подсветке
Основная идея подсветки кода, как это реализовано в Pygments, заключается в том, что исходный текст сначала разбивается на небольшие фрагменты — токены, а каждому токену присваивается тип токена, который определяет его семантическую роль в коде (например, ключевое слово, строка или комментарий).
Тип токена затем используется для определения того, как этот фрагмент кода должен быть стилизован (например, "красный и жирный" для ключевых слов). В Pygments используется иерархическая система типов токенов, где каждый тип является подтипом более общего. Основные (глобальные) типы токенов и их подтипы включают: Основные типы токенов Pygments
| 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). |