Problem when using listener mode
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 45/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- python, typescript
- Domínio
- compilers
Direção de pesquisa
Reproduza os dois exemplos com Python3Parser.parse e parser.listen, comparando a entrada com e sem a quebra de linha final. Comece pelo comportamento do parser e do listener em torno da instrução de importação final e, em seguida, verifique se os callbacks do listener funcionam para código sem uma quebra de linha final, preservando o comportamento existente para código multilinha.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- JavaScript
- Estrelas
- 25
- Forks
- 7
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de DTStack/dt-python-parser
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 48/100
DTStack/dt-python-parser#28 ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 20/100
DTStack/dt-python-parser#27 · 1 comentário ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
DTStack/dt-python-parser#24 · 1 comentário ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 15/100
DTStack/dt-python-parser#15 · 3 comentários ·
-
支持最新版Python3语法 Aberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 20/100
DTStack/dt-python-parser#11 ·
Todas as issues de DTStack/dt-python-parser
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Theme loads third-party resources on every page (jsdelivr web font, cdnjs Font Awesome) – GDPR Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
docToolchain/docToolchain#1705 ·
-
Timezone select lists one option per character; duplicate "Failed" reason; shared tracker popover id Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
nightscout/nocturne#1414 ·
-
bug v2
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
modelcontextprotocol/inspector#2458 · 1 comentário ·
-
Mend: dependency security vulnerability status: needs triage 🕵️♀️
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
carbon-design-system/ibm-products#9907 ·