Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementación del interprete #11

Open
Hrbacek opened this issue Nov 7, 2023 · 3 comments
Open

Implementación del interprete #11

Hrbacek opened this issue Nov 7, 2023 · 3 comments
Labels
help wanted Extra attention is needed Research There is not enough information

Comments

@Hrbacek
Copy link

Hrbacek commented Nov 7, 2023

Escribir el interprete para el lenguaje basado en el output de ANTLR4 para el lexer y parser

@danilopedraza danilopedraza added help wanted Extra attention is needed Research There is not enough information labels Feb 7, 2024
@danilopedraza
Copy link
Member

Este issue es grande. Incluye detalles sobre como definimos la sintaxis de lenguaje. En particular, las siguientes características influyen:

  • El comportamiento de los scopes
  • Separación entre statements y expressions

@danilopedraza
Copy link
Member

danilopedraza commented Feb 27, 2024

Hay dos cosas que no hemos mencionado y son importantes:

  • Si quisieramos darle procesamiento al árbol de sintaxis que ANTLR nos da. Hasta ahora he intentado evaluar nodos del árbol de sintaxis de ANTLR y ha sido un poco problemático, pues tengo que hacer muchos casts y estoy haciendo saltos muy grandes de sintaxis a entidades del lenguaje. Considerando que la sintaxis está incompleta, imagino que este problema será más grande después.

  • El grado de acoplamiento que tengamos a ANTLR. La forma en que he empezado a evaluar nodos acopla demasiado mi código a ANTLR, y no veo un refactor inmediato para arreglarlo.

Veo una solución para estos dos problemas: Crear un AST a partir del CST de ANTLR4 y caminarlo. Si en algún momento quisieramos dejar de usar ANTLR, solo deberíamos dar con otra forma de obtener nuestros AST. Además, crear un AST a partir del CST nos permitiría eliminar detalles de caracteres y hacer al árbol menos genérico (en cuanto a como interactuamos con él en el código).

@danilopedraza
Copy link
Member

Creé el issue #20 para la tarea de crear el AST.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed Research There is not enough information
Projects
None yet
Development

No branches or pull requests

2 participants