Saltar a contenido

Sesion 4: 07 de Marzo: AST (Arboles de sintaxis abstracta)

¿Que es un AST?

Es una representación de los datos a partir de la gramática

Untitled


¿Como definimos un AST en racket?

(define-datatype nombre nombre?
      (caso1 (x tipo?)
                 ...
              (z (list-of tipo?))
       (caso2)
           ....
       (caso n) (...) (...) (..)
 )

https://www.notion.so


¿Como construimos datos?

Usando los constructores provistos por las variantes

(caso1 arg1 arg2 ... argn)
;;Los argi deben ser de los tipos esperados

¿Como extraemos información de los AST?

(cases tipo variable
    (caso1 (arg1 arg2 .. argn) ..)
    ..
    (caso n () ...) )

(cases tipo variable
   (caso1 ( ....) ...)
   (else ...))