Problem when using listener mode
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 45/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- python, typescript
- Bereich
- compilers
Rechercherichtung
Reproduzieren Sie die beiden Beispiele mit Python3Parser.parse und parser.listen und vergleichen Sie die Eingabe mit und ohne abschließenden Zeilenumbruch. Beginnen Sie bei der Parser- und Listener-Implementierung rund um die letzte Import-Anweisung und überprüfen Sie anschließend, dass Listener-Callbacks für Code ohne abschließenden Zeilenumbruch funktionieren, während das bestehende Verhalten für mehrzeiligen Code erhalten bleibt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 25
- Forks
- 7
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus DTStack/dt-python-parser
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 48/100
DTStack/dt-python-parser#28 ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
DTStack/dt-python-parser#27 · 1 Kommentar ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
DTStack/dt-python-parser#24 · 1 Kommentar ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 15/100
DTStack/dt-python-parser#15 · 3 Kommentare ·
-
支持最新版Python3语法 Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
DTStack/dt-python-parser#11 ·
Alle Issues in DTStack/dt-python-parser
Ähnliche Issues
-
awaiting triage bug Causes friction Hop Gui P1 P2 Transforms
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
Improve Title Support Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
georgestephanis/p2026#40 ·
-
Enatega Customer and Rider app: Add-ons price is not visible to customer after order is placed. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Margaret-Petersen/food-delivery-app-clone-react-native#1981 ·