Lesson 02 — Lexer / Tokenizer
Bộ công cụ tương tác: gõ code xem token tô màu theo loại + vị trí (bắt lỗi từ vựng), chạy DFA nhận số / định danh từng ký tự, và minh hoạ maximal munch (>= vs > =).
1. Live Tokenizer — gõ code, xem token
Lexer mini hiểu: số [0-9]+ (kèm . cho số thực), định danh, keyword
(if else while for return func var int), toán tử
(+ - * / = == != < > <= >= && ||), dấu phân cách
(( ) { } , ;), chuỗi "...", comment // và /* */.
Ký tự lạ (@ $ ?) → lỗi từ vựng kèm dòng:cột.
2. DFA Visualizer — chạy automaton từng ký tự
Mỗi loại token là một automaton. Chọn DFA, nhập chuỗi, bấm Chạy từng bước — trạng thái hiện tại được tô cam, kết thúc báo chấp nhận hay từ chối. Liên hệ state machine trong Algorithms.
3. Maximal Munch — ngoạm dài nhất
Tại mỗi vị trí lexer chọn token khớp chuỗi dài nhất. Xem cùng input cho ra kết quả đúng (maximal munch) vs kết quả sai (ngoạm từng ký tự một).