lexer freezes on this Python code
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript, python
- Área
- compilers
Línea de trabajo
Empieza reproduciendo el bloqueo con lexer("print('\'m')") e inspecciona la función lexer, especialmente el bucle matchQuotation mostrado en el issue. Sigue cómo se tokenizan las comillas escapadas y asegúrate de que esta entrada termine sin avanzar más allá del final de la entrada; verifica que el lexer ya no se bloquee.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- JavaScript
- Estrellas
- 25
- Forks
- 7
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de DTStack/dt-python-parser
-
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
DTStack/dt-python-parser#28 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
DTStack/dt-python-parser#27 · 1 comentario ·
-
Problem when using listener mode Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
DTStack/dt-python-parser#26 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
DTStack/dt-python-parser#15 · 3 comentarios ·
-
支持最新版Python3语法 Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
DTStack/dt-python-parser#11 ·
Todos los issues de DTStack/dt-python-parser
Issues similares
-
bug customer-eng Durable Agents Inngest status: needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
optimization optimization:agents-md-curator
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
githubnext/gh-aw-cao#13475 ·
-
[BUG]: "Clear All" in Settings doesn't clear the saved analysis, old data comes back after reload Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
AOSSIE-Org/OrgExplorer#253 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
oxc-project/oxc#26944 ·
-
ai-observability bug team/ai-observability
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100