Para que ICE pueda generar un analizador sintáctico, necesita
un fichero que contenga la descripción de una gramática de
contexto libre a partir de la cual poder construir dicho
analizador. Como ya se comentó anteriormente, el formato
de esta gramática es el mismo que el utilizado por Bison y Yacc.
Este tipo de ficheros tiene la extensión .y. Para
una descripción completa del formato del fichero, puede
acudirse a [Donnelly y Stallman 88]. Para comprender mejor la forma en
que interactúan Yacc y Lex, una buena referencia es [Mason y Brown 90]. En [Aho et al. 90]
y [Aho y Ullman 73] se realiza un detallado estudio de las
gramáticas de contexto libre aplicadas a lenguajes de programación. Para un estudio general
de este tipo de gramáticas puede recurrirse a libros
como [Sudkamp 88], [Hopcroft y Ullman 79] y [Harrison 87].
Una vez activado el intérprete de ICE, el usuario puede solicitar que sea cargado el analizador para un lenguaje lang. En tal caso, ICE busca, en el directorio indicado en la llamada a la función {ice}:user-language en la cual se declaró la existencia del lenguaje lang, los siguientes ficheros: