Como ya se comentó anteriormente, ICE representa el análisis por medio de las reglas de la gramática de contexto libre usadas en una reducción a derechas de la sentencia analizada, en vez de utilizar directamente un árbol de análisis sintáctico. De este modo se consigue que cuando la sentencia tenga diferentes análisis, el conjunto de todas las cadenas de análisis sean representadas de forma finita compartida mediante una gramática de contexto libre que genera el conjunto completo, posiblemente infinito.
El grafo de bosque compartido es equivalente a un grafo AND-OR de una gramática de contexto libre, en donde las ramas AND se corresponden con árboles de análisis deterministas tradicionales y las ramas OR se corresponden con los distintos caminos creados por las ambigüedades en el análisis no determinista. La compartición de estructuras se logra permitiendo que un nodo tenga más de un padre. Se puede compartir un subárbol entero o una parte de los descendientes de un nodo dado.
Para generar el bosque compartido, los items realizan el papel de no terminales
en una gramática de salida donde
es el conjunto de todos los items,
el conjunto de los componentes léxicos
de la gramática original
y
son las reglas construidas por el algoritmo
de análisis junto con los items. Se genera una regla en la gramática de salida
cada vez que se realiza una reducción o un desplazamiento en la pila. En ambos
casos, el lado izquierdo de la regla se corresponde con el nuevo item que
describe la configuración resultante. El lado derecha está formado, en el caso
de un desplazamiento, por el componente léxico reconocido y en el caso de una reducción
por los items que representan a los items eliminado de la pila. El último item producido por un proceso de
computación que reconoce la cadena de entrada es el símbolo inicial
.