lexer freezes on this Python code
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- javascript, python
- Domaine
- compilers
Piste de recherche
Commencez par reproduire le gel avec lexer("print('\'m')") et inspectez la fonction lexer, en particulier la boucle matchQuotation présentée dans l’issue. Suivez la manière dont les guillemets échappés sont tokenisés et assurez-vous que cette entrée se termine sans avancer au-delà de la fin de l’entrée ; vérifiez que le lexer ne se bloque plus.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- JavaScript
- Étoiles
- 25
- Forks
- 7
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de DTStack/dt-python-parser
-
Difficulté 3/5 1-2 jours Accessibilité débutants 48/100
DTStack/dt-python-parser#28 ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
DTStack/dt-python-parser#27 · 1 commentaire ·
-
Problem when using listener mode Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
DTStack/dt-python-parser#26 ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
DTStack/dt-python-parser#15 · 3 commentaires ·
-
支持最新版Python3语法 Ouverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
DTStack/dt-python-parser#11 ·
Toutes les issues de DTStack/dt-python-parser
Issues similaires
-
bug customer-eng Durable Agents Inngest status: needs triage
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
-
optimization optimization:agents-md-curator
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
githubnext/gh-aw-cao#13475 ·
-
[BUG]: "Clear All" in Settings doesn't clear the saved analysis, old data comes back after reload Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
AOSSIE-Org/OrgExplorer#253 · 1 commentaire ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
oxc-project/oxc#26944 ·
-
ai-observability bug team/ai-observability
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100