Trong giai đoạn phân tích từ vựng (lexical analysis), bộ quét từ vựng (lexer) phải đọc dòng văn bản nguồn và chia thành các token, sau đó xác định loại của từng token.
Cho một dòng văn bản gồm các token cách nhau bởi một hoặc nhiều khoảng trắng. Với mỗi token, hãy phân loại theo đúng thứ tự ưu tiên sau:
0-9 (độ dài tuỳ ý, có thể có số 0 ở đầu).a-z, A-Z) hoặc dấu gạch dưới _, và toàn bộ các ký tự còn lại (nếu có) đều là chữ cái, chữ số hoặc gạch dưới.+, ?, ...).Hãy đếm số lượng token thuộc mỗi loại.
Ví dụ: với dòng 12 abc _x9 3.14 x+y ++, ta có 12 là NUMBER; abc, _x9 là IDENT; 3.14, x+y, ++ là OTHER. Kết quả: NUMBER: 1, IDENT: 2, OTHER: 3.
Một dòng duy nhất (có thể rỗng) chứa các token cách nhau bởi khoảng trắng.
In ra đúng 3 dòng theo thứ tự cố định:
NUMBER: <số lượng>
IDENT: <số lượng>
OTHER: <số lượng>
Ví dụ:
Đầu vào:
Đầu ra:
NUMBER: 0
IDENT: 0
OTHER: 0
Đầu vào:
12 abc _x9 3.14 x+y ++
Đầu ra:
NUMBER: 1
IDENT: 2
OTHER: 3
Đang tải editor...