How to parse to fine-grained statements?
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- typescript
- Área
- compilers
Línea de trabajo
Comienza con test.ts y la implementación enlazada de CircomFilesVisitor; después, inspecciona cómo getCircomParser(source) y visitor.visit(parser.circuit()) exponen TemplateDefinitionContext y sus elementos secundarios. Determina cómo se puede llegar a los nodos a nivel de sentencia en el árbol de análisis; el trabajo estará terminado cuando se obtenga un árbol detallado para cada sentencia del programa Circom.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I used the method from CircomFilesVisitor for parsing. However, the parsing result is coarse-grained and does not parse each statement in the Circom program.
test.ts
import { getCircomParser, ParserError } from '@distributedlab/circom-parser';
import CircomFilesVisitor from './CircomFilesVisitor';
let source="/mnt/sdd1/sbw/circom/test_circomParser/historyBug/circom/208.circom"
const parser = getCircomParser(source);
const visitor = new CircomFilesVisitor(source);
visitor.visit(parser.circuit());
let temp=visitor.fileData;
let templates=temp.templates;
console.log("templates",templates)
templates {
Example: {
parameters: [],
isCustom: false,
parallel: false,
context: TemplateDefinitionContext {
parentCtx: [BlockDefinitonContext],
invokingState: 176,
children: [Array],
start: [Pt],
stop: [Pt],
exception: null,
_argNames: undefined,
parser: [ExtendedCircomParser]
}
}
}
I want to obtain a fine-grained parse tree at the statement level, like the one on the far right in the image. What should I do?
- Lenguaje dominante
- TypeScript
- Estrellas
- 6
- Forks
- 1
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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.
Issues similares
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
StabilityNexus/Fate-EVM-Frontend#153 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
code-yeongyu/oh-my-openagent#9039 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Tencent/teamai-cli#862 ·
Los mantenedores suelen responder en 1 día
-
bug good first issue hacktoberfest redis
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
libredb/libredb-studio#1164 ·
Los mantenedores suelen responder en 1 día
-
flake
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
coder/xum#4920 · 2 comentarios ·
Los mantenedores suelen responder en 1 día