Problem when using listener mode
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
- python, typescript
- Domaine
- compilers
Piste de recherche
Reproduisez les deux exemples avec Python3Parser.parse et parser.listen, en comparant l’entrée avec et sans retour à la ligne final. Commencez par le comportement du parser et du listener autour de la dernière instruction d’importation, puis vérifiez que les callbacks du listener fonctionnent pour du code sans retour à la ligne final, tout en préservant le comportement existant pour le code multiligne.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
When using listener mode the parser is always expecting a line break after each line of python code.
For instance,
const parser = new Python3Parser();
const python ='import sys\nfor i in sys.argv:\n print(i)';
// parseTree
const tree = parser.parse(python);
class MyListener extends Python3Listener {
enterImport_name(ctx): void {
let importName = ctx
.getText()
.toLowerCase()
.match(/(?<=import).+/)?.[0];
console.log('ImportName', importName);
}
}
const listenTableName = new MyListener();
parser.listen(listenTableName, tree);
The above code will work but when I remove '\n' from the python code it won't (Given below).
const parser = new Python3Parser();
const python ='import sys';
// parseTree
const tree = parser.parse(python);
class MyListener extends Python3Listener {
enterImport_name(ctx): void {
let importName = ctx
.getText()
.toLowerCase()
.match(/(?<=import).+/)?.[0];
console.log('ImportName', importName);
}
}
const listenTableName = new MyListener();
parser.listen(listenTableName, tree);
Is there a work around for this? I want to dynamically pass the python code to the parser so it might not always have a line break.
- 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 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
DTStack/dt-python-parser#24 · 1 commentaire ·
-
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
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
palladius/rails8-app-on-gcp#145 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
dotenvx/dotenv-vscode#139 ·
-
test-change-proposal
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
web-platform-tests/interop#1455 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
corsairdev/corsair#1764 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100