Problem when using listener mode
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
- python, typescript
- Área
- compilers
Línea de trabajo
Reproduzca los dos ejemplos con Python3Parser.parse y parser.listen, comparando la entrada con y sin el salto de línea final. Comience por el comportamiento del parser y del listener en torno a la declaración de importación final y, a continuación, verifique que las callbacks del listener funcionan para código sin un salto de línea final, conservando el comportamiento existente para código multilínea.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- 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 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
DTStack/dt-python-parser#24 · 1 comentario ·
-
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
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
palladius/rails8-app-on-gcp#145 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
dotenvx/dotenv-vscode#139 ·
-
test-change-proposal
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
web-platform-tests/interop#1455 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
corsairdev/corsair#1764 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100