Diseñe un lenguaje de programación sencillo. Escriba un analizador sintáctico que genere un árbol de análisis abstracto para dicho lenguaje.
- Escriba un PEG para dicho lenguaje.
- Deberá devolver el árbol de análisis sintáctico.
- El lenguaje debe tener:
- Declaraciones
- Sentencias IF
- Condiciones
- Asignaciones
- Alguna forma de bucle
- Funciones y llamadas a funciones
- Escriba pruebas para el código desarrollado.
- start ---> (statement ";")+
- statement ---> "if" condition "{" statements "}" | "while" "(" condition ")" "{" statements "}" | "print" expression | assign
- condition ---> expression COMPARISON expression
- assign ---> ID "=" assign | expression | function
- function ---> "function" "(" ")" "{" statements "}"
- expression ---> term (ADDOP term)*
- term ---> factor (MULOP factor)*
- factor ---> "(" expression ")" | NUM | ID