AYUDA URGENTE C++ POR FAVOR

Brenda Mercado del Rio
05 de Enero del 2005
Necesito urgente que me envien si tienen el sigueinte compilador para las siguientes especificaciones:

1 Hacer un compilador para la siguiente gramática libre de contexto.

programa à
programa id
declaraciones
proposición_compuesta
.

declaraciones à
declaraciones var lista_identificadores : tipo;
½Î

lista_identificadoresà
id
½lista_identificadores, id

tipoà
entero
½cadena [num]


proposición_compuestaà
inicio
proposiciones_optativas
fin

proposiciones_optativasà
lista_proposiciones
½Î

lista_proposicionesà
proposición
½lista_proposiciones ; proposición


proposiciónà
variable opasigna expresión
½proposición_compuesta
½si expresión entonces proposición sino proposición
½escribe (variable)
½lee (variable)

variableà
id

expresiónà
expresión_simple ½constante_cadena
½expresiòn_simple oprel expresión_simple

expresión_simple à
término ½signo_tèrmino
½expresiòn_simple opsuma término

términoà
factor
½término opmult factor

factorà
id
½num
½(expresión)

signo_tèrminoà
+ ½ -

constante_cadenaà
“ alfanuméricos “


CONVENCIONES LEXICOGRAFICAS

1. Los espacios entre componentes léxicos son opcionales, con excepción de las palabras clave que deben estar encerradas entre espacios, enter, comienzo del programa o punto final.
2. id es
letra à [a - z A - Z]
dígito à [0 - 9]
id à letra (letra ½ dígito)

con una magnitud máxima de 10, identificador no se repite.

3. num à concuerda con enteros sin signo
digitoà dígito dígito

4. Palabras clave son reservadas y aparecen en negrita.
5. oprel son =,< >, <, <=, >=, >
6. opsuma son +,-
7. opmult son *, /
8. opasigna es :=

El compilador recibe el código fuente en un archivo de texto, la analiza, si encuentra errores indica el error, la línea y columna del mismo.

El código se debe realizar de preferencia en C# o en su defecto en C++.