token --- Các hằng số được sử dụng với cây phân tích cú pháp Python¶
Source code: Lib/token.py
Mô-đun này cung cấp các hằng số đại diện cho các giá trị số của các nút lá của cây phân tích cú pháp (mã thông báo đầu cuối). Tham khảo tệp Grammar/Tokens trong bản phân phối Python để biết định nghĩa về tên trong ngữ cảnh ngữ pháp ngôn ngữ. Các giá trị số cụ thể mà tên ánh xạ tới có thể thay đổi giữa các phiên bản Python.
Mô-đun này cũng cung cấp ánh xạ từ mã số đến tên và một số chức năng. Các định nghĩa phản ánh các hàm trong tệp tiêu đề Python C.
Lưu ý rằng giá trị của mã thông báo có thể phụ thuộc vào tùy chọn mã thông báo. Ví dụ: mã thông báo "+" có thể được báo cáo là PLUS hoặc OP hoặc mã thông báo "match" có thể là NAME hoặc SOFT_KEYWORD.
- token.tok_name¶
Từ điển ánh xạ các giá trị số của các hằng số được xác định trong mô-đun này trở lại chuỗi tên, cho phép tạo ra biểu diễn cây phân tích dễ đọc hơn cho con người.
- token.ISTERMINAL(x)¶
Trả về
Truecho các giá trị mã thông báo đầu cuối.
- token.ISNONTERMINAL(x)¶
Trả về
Truecho các giá trị mã thông báo không phải đầu cuối.
- token.ISEOF(x)¶
Trả về
Truenếu x là điểm đánh dấu cho biết kết thúc đầu vào.
Các hằng số mã thông báo là:
- token.NAME¶
Giá trị mã thông báo cho biết identifier or keyword.
- token.NUMBER¶
Giá trị mã thông báo cho biết numeric literal
- token.STRING¶
Giá trị mã thông báo cho biết string or byte literal, ngoại trừ formatted string literals. Chuỗi mã thông báo không được diễn giải: nó bao gồm các dấu ngoặc kép xung quanh và tiền tố (nếu được cung cấp); dấu gạch chéo ngược được bao gồm theo nghĩa đen mà không cần xử lý chuỗi thoát.
- token.OP¶
Giá trị mã thông báo chung cho biết operator hoặc delimiter.
Giá trị này chỉ được mô-đun
tokenizebáo cáo. Trong nội bộ, mã thông báo sử dụng exact token types thay thế.
- token.COMMENT¶
Giá trị mã thông báo được sử dụng để biểu thị nhận xét. Trình phân tích cú pháp bỏ qua mã thông báo
COMMENT.
- token.NEWLINE¶
Giá trị mã thông báo cho biết sự kết thúc của logical line.
- token.NL¶
Giá trị mã thông báo được sử dụng để biểu thị dòng mới không kết thúc. Mã thông báo
NLđược tạo khi một dòng mã logic được tiếp tục trên nhiều dòng vật lý. Trình phân tích cú pháp bỏ qua mã thông báoNL.
- token.INDENT¶
Giá trị mã thông báo được sử dụng ở đầu logical line để biểu thị sự bắt đầu của indented block.
- token.DEDENT¶
Giá trị mã thông báo được sử dụng ở đầu logical line để biểu thị sự kết thúc của indented block.
- token.FSTRING_START¶
Giá trị mã thông báo được sử dụng để biểu thị sự bắt đầu của f-string literal.
Chuỗi mã thông báo bao gồm tiền tố và (các) trích dẫn mở đầu, nhưng không có nội dung nào theo nghĩa đen.
- token.FSTRING_MIDDLE¶
Giá trị mã thông báo được sử dụng cho văn bản bằng chữ bên trong f-string literal, bao gồm cả thông số định dạng.
Các trường thay thế (nghĩa là các phần không phải chữ của chuỗi f) sử dụng cùng mã thông báo như các biểu thức khác và được phân tách bằng mã thông báo
LBRACE,RBRACE,EXCLAMATIONvàCOLON.
- token.FSTRING_END¶
Giá trị mã thông báo được sử dụng để biểu thị sự kết thúc của f-string.
Chuỗi mã thông báo chứa (các) dấu ngoặc kép đóng.
- token.TSTRING_START¶
Giá trị mã thông báo được sử dụng để biểu thị sự bắt đầu của một chuỗi ký tự mẫu.
Chuỗi mã thông báo bao gồm tiền tố và (các) trích dẫn mở đầu, nhưng không có nội dung nào theo nghĩa đen.
Added in version 3.14.
- token.TSTRING_MIDDLE¶
Giá trị mã thông báo được sử dụng cho văn bản bằng chữ bên trong chuỗi ký tự mẫu bao gồm các thông số định dạng.
Các trường thay thế (nghĩa là các phần không phải chữ của chuỗi t) sử dụng cùng mã thông báo như các biểu thức khác và được phân tách bằng mã thông báo
LBRACE,RBRACE,EXCLAMATIONvàCOLON.Added in version 3.14.
- token.TSTRING_END¶
Giá trị mã thông báo được sử dụng để biểu thị sự kết thúc của một chuỗi ký tự mẫu.
Chuỗi mã thông báo chứa (các) dấu ngoặc kép đóng.
Added in version 3.14.
- token.ENDMARKER¶
Giá trị mã thông báo cho biết kết thúc đầu vào. Được sử dụng trong top-level grammar rules.
- token.ENCODING¶
Giá trị mã thông báo cho biết mã hóa được sử dụng để giải mã byte nguồn thành văn bản. Mã thông báo đầu tiên được
tokenize.tokenize()trả về sẽ luôn là mã thông báoENCODING.Loại mã thông báo này không được mã thông báo C sử dụng nhưng cần thiết cho mô-đun
tokenize.
Các loại mã thông báo sau không được mô-đun tokenize tạo ra và được xác định cho các mục đích sử dụng đặc biệt trong trình mã thông báo hoặc trình phân tích cú pháp:
- token.TYPE_IGNORE¶
Giá trị mã thông báo cho biết nhận xét
type: ignoređã được nhận dạng. Các mã thông báo như vậy được tạo thay vì mã thông báoCOMMENTthông thường chỉ với cờPyCF_TYPE_COMMENTS.
- token.TYPE_COMMENT¶
Giá trị mã thông báo cho biết loại nhận xét đã được nhận dạng. Các mã thông báo như vậy được tạo thay vì mã thông báo
COMMENTthông thường chỉ với cờPyCF_TYPE_COMMENTS.
- token.SOFT_KEYWORD¶
Giá trị mã thông báo biểu thị soft keyword.
Trình mã thông báo không bao giờ tạo ra giá trị này. Để kiểm tra từ khóa mềm, hãy chuyển chuỗi mã thông báo
NAMEtớikeyword.issoftkeyword().
- token.ERRORTOKEN¶
Giá trị mã thông báo được sử dụng để chỉ ra đầu vào sai.
Mô-đun
tokenizethường chỉ ra lỗi bằng cách đưa ra các ngoại lệ thay vì phát ra mã thông báo này. Nó cũng có thể phát ra các mã thông báo nhưOPhoặcNAMEvới các chuỗi mà sau đó bị trình phân tích cú pháp từ chối.
Các mã thông báo còn lại đại diện cho operators và delimiters cụ thể. (Mô-đun tokenize báo cáo những điều này là OP; xem exact_type trong tài liệu tokenize để biết chi tiết.)
Mã thông báo |
Giá trị |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Các hằng số không phải mã thông báo sau đây được cung cấp:
- token.N_TOKENS¶
Số loại mã thông báo được xác định trong mô-đun này.
- token.EXACT_TOKEN_TYPES¶
Một từ điển ánh xạ biểu diễn chuỗi của mã thông báo tới mã số của nó.
Added in version 3.8.
Thay đổi trong phiên bản 3.5: Đã thêm mã thông báo AWAIT và ASYNC.
Thay đổi trong phiên bản 3.7: Đã xóa mã thông báo AWAIT và ASYNC. "async" và "await" hiện được mã hóa dưới dạng mã thông báo NAME.
Thay đổi trong phiên bản 3.8: Đã thêm TYPE_COMMENT, TYPE_IGNORE, COLONEQUAL. Đã thêm lại mã thông báo AWAIT và ASYNC (chúng cần thiết để hỗ trợ phân tích cú pháp các phiên bản Python cũ hơn cho ast.parse() với feature_version được đặt thành 6 hoặc thấp hơn).
Thay đổi trong phiên bản 3.12: Đã thêm EXCLAMATION.
Thay đổi trong phiên bản 3.13: Đã xóa mã thông báo AWAIT và ASYNC một lần nữa.