CI-2700 Tópicos Especiales - Compiladores Proyecto Tres - Más Extensiones a Tiny Agregar las siguientes construcciones a Tiny: 1) El tipo de dato 'char'. 2) Definiciones de constantes, à la Pascal, e.g., const Three = 3; F = 'f'; T = true; 3) Definición de tipos enumerados por el usuario. Ejemplo: type Color = (red,white,blue); El tipo intrínsico 'boolean' debe ser re-implementado, como si fuera un tipo enumerado. Permitir también definiciones de 'sinónimos', de modo que un nombre de tipo es sinónimo de otro. Si esto se usa junto con ámbitos (scopes), podemos intercambiar nombres de tipos: type A = integer; integer = boolean; boolean = A; 4) Para tipos enumeraods, usar la instrucción LIMIT para producir errores de ejecución si un valor está fuera de rango. La instrucción LIMIT no tiene operandos, y opera como se indica en código C abajo. De hecho, este es el código de la instrucción LIMIT, en el interpretador. case LIMITOP : temp2 = PopLf(); /* U */ temp1 = PopLf(); /* L */ temp = PopLf(); /* X */ if ((temp >= temp1) && (temp <= temp2)) PushLf(temp); else { fprintf(output,"<<< MACHINE ERROR >>>: "); fprintf(output,"VALUE OUT OF RANGE0); DumpMemory(output); FatalError(); } break; 5) Agregar las funciones intrínsicas "succ", "pred" y "ord" (para enteros y caracteres y tipos enumerados), y "chr" para convertir enteros a caracteres. 6) Cambiar la manera en que se leen datos en Tiny, eliminado la función (sin parámetros) intrínsica "read", y agregando la instrucción "read". Se leerán variables así: read(a,b,c,x,y,z) Cada argumento de "read" debe ser una variable, de tipo entero o caracter. Cada variable se lee de una línea aparte en la entrada. Dos instrucciones máquina son útiles para esto: SOS INPUTC SOS OUTPUTC 7) Permitir la salida de enteros y caracteres, por ejemplo output('a','=',' ',a,' ',b,3,'x') También permitir hileras literales, pero solo en la instrucción "output". Por ejemplo, output ("a's value is ", a) Para este proyecto, implementarán "modos" de identificadores. Detalles en clase. FECHA DE ENTREGA: Lunes 27 de octubre, 11:59 p.m.