lexer freezes on this Python code
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 45/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- javascript, python
- Lĩnh vực
- compilers
Hướng nghiên cứu
Bắt đầu bằng cách tái hiện tình trạng bị treo với lexer("print('\'m')") và kiểm tra hàm lexer, đặc biệt là vòng lặp matchQuotation được hiển thị trong issue. Theo dõi cách các dấu ngoặc kép được escape được tokenize và đảm bảo đầu vào này kết thúc mà không tiến quá cuối đầu vào; xác minh rằng lexer không còn bị treo.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Steps to reproduce:
- Try to run
lexer("print('\'m')") - Notice that it freezes.
I traced the freeze to an infinite do-while loop in the lexer.
In the following code, input is set to the code "print('\'m')" but current variable reaches into the billions,
currentChar === undefined, and
validator.test(currentChar) is returning false when currentChar is undefined.
/**
* 过滤(提取) 引号中的内容
*/
// eslint-disable-next-line
const matchQuotation = (currentChar, validator, TokenType) => {
do {
if (currentChar === '\n') {
line++;
}
currentChar = input[++current];
} while (!validator.test(currentChar));
++current;
};
I wonder if this has anything to do with the backslashed quotation mark. Maybe the grammar doesn't define STRING properly for escaped quotes.
I edited this issue because I first thought the bug was reproducible by parsing but it actually requires running the lexer function on the code.
- Ngôn ngữ chính
- JavaScript
- Star
- 25
- Fork
- 7
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của DTStack/dt-python-parser
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 48/100
DTStack/dt-python-parser#28 ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 20/100
DTStack/dt-python-parser#27 · 1 bình luận ·
-
Problem when using listener mode Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
DTStack/dt-python-parser#26 ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 15/100
DTStack/dt-python-parser#15 · 3 bình luận ·
-
支持最新版Python3语法 Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 20/100
DTStack/dt-python-parser#11 ·
Tất cả issue của DTStack/dt-python-parser
Issue tương tự
-
bug customer-eng Durable Agents Inngest status: needs triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
-
optimization optimization:agents-md-curator
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
githubnext/gh-aw-cao#13475 ·
-
[BUG]: "Clear All" in Settings doesn't clear the saved analysis, old data comes back after reload Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
AOSSIE-Org/OrgExplorer#253 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
oxc-project/oxc#26944 ·
-
ai-observability bug team/ai-observability
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100