Поток относится к последовательности элементов данных, доступных со временем.Элементы данных в потоках могут быть любого типа: символы, строки, специальные структуры данных и т. Д. Текстовый файл можно тривиально интерпретировать как поток символов.
В контексте языков программирования слово token обычно относится к последовательности из одного или нескольких связанных символов из потока символов.Токены предлагают уровень абстракции поверх символьных потоков и часто сами группируются в потоки для дальнейшей обработки.
Обычная последовательность обработки в компиляторах языков программирования начинается с лексических анализаторов преобразования потоковсимволов в потоки токенов, которые затем передаются в парсеры .Типичное представление токена состоит из индикатора типа и содержимого токена.
Вот пример: рассмотрим этот фрагмент программы на C ++:
class MyClass {
public:
string name;
};
Анализатор лексеров группирует эту программув поток из десяти жетонов:
'class' (keyword)
'MyClass' (identifier)
'{' (opening brace)
'public' (keyword)
':' (colon)
'string' (identifier)
'name' (identifier)
';' (semicolon)
'}' (closing brace)
';' (semicolon)