Token** là đơn vị nhỏ nhất có nghĩa trong chương trình C++ đối với trình biên dịch. Parser C++ nhận diện các loại token:
- Identifiers (định danh)
- Keywords (từ khóa)
- Literals (hằng số)
- Operators (toán tử)
- Punctuators (dấu câu:
{ } [ ] ( ) , ; : ...) - Other separators
Một luồng token tạo thành translation unit. Token thường tách nhau bởi whitespace.
Preprocessing tokens (#include, #define, #ifdef...) dùng trong tiền xử lý để tạo luồng token cho compiler. Các loại: header names, identifiers, preprocessing numbers, character/string literals, v.v. Character/string literals có thể là user-defined literals. Preprocessing tokens tách nhau bởi whitespace hoặc comment.
Quy tắc phân tách token (Maximal Munch):** Parser tạo token dài nhất có thể từ luồng ký tự nhập vào, quét từ trái sang phải.