11.Mini-Compilador de configuración
Este compilador procesa un lenguaje de texto que describe una calculadora y genera su archivo de configuración en XML y JSON. El XML es la entrada del compilador del Tema 4.
Se recompila mientras escribes. Ctrl+Enter también compila.
Compilando…
Etapas del compilador
Fuente → análisis léxico (tokens) → análisis sintáctico (árbol) → validación semántica (valores, rangos y reglas entre propiedades) → generación de XML/JSON.
Estructura
calculadora "Nombre" {
propiedad: valor
...
}
// comentarios con doble barra
Propiedades
| Propiedad | Valor | Por defecto |
|---|---|---|
titulo | texto entre comillas (1–40 caracteres) | el nombre |
modo | basica | cientifica | basica |
tema | claro | oscuro | claro |
funciones | lista: suma resta multiplicacion division porcentaje y, solo en modo cientifica, potencia raiz sin cos tan log ln pi | las 4 operaciones |
decimales | entero 0–10 | 2 |
ancho / alto | píxeles (280–800 / 360–900) | 360 / 520 (640 científica) |
color_fondo color_pantalla color_texto color_botones color_operadores color_igual | color #rrggbb o #rgb | según el tema |
Gramática
programa := 'calculadora' CADENA '{' propiedad* '}'
propiedad := IDENTIFICADOR ':' valor
valor := IDENTIFICADOR | NUMERO | COLOR | CADENA | lista
lista := '[' IDENTIFICADOR ( ',' IDENTIFICADOR )* ']'
Reglas semánticas
- Las propiedades no se pueden repetir y deben existir (si te equivocas, sugiere la correcta).
- Las funciones científicas requieren
modo: cientifica. - Avisa si el contraste entre texto y pantalla es muy bajo.
Aún no hay tokens.
