análisis sintáctico descendente sin retroceso - Blearning

análisis sintáctico descendente sin retroceso - Blearning análisis sintáctico descendente sin retroceso - Blearning

blearning.itmina.edu.mx
from blearning.itmina.edu.mx More from this publisher
09.05.2013 Views

Construcción de analizadores sintácticos descendentes Analizadores sintácticos descendentes recursivos Implementación de un analizador sintáctico descendente recursivo Una función denominada Match Funcion Match(terminal) inicio si (token-actual == terminal) entonces obtener siguiente token sino error sintáctico fin Una función para cada no terminal con la siguiente estructura: Para las reglas de la forma A → α 1 | α 2 | ... | α n decidir la producción a utilizar en función de los conjuntos INICIALES(α i ). . Página 48

Construcción de analizadores sintácticos descendentes Analizadores sintácticos recursivos descendentes Funcion A() inicio segun token-actual está en: INICIALES(α 1 ): { proceder según alternativa α 1 } INICIALES(α 2 ): { proceder según alternativa α 2 } ... INICIALES(α n ): { proceder según alternativa α n } Fin-segun si token-actual no pertenece a ningún INICIALES (α n ) entonces Fin error sintáctico, excepto si existe la alternativa A → ε en cuyo caso no se hace nada. Página 49

Construcción de analizadores <strong><strong>sin</strong>táctico</strong>s <strong>descendente</strong>s<br />

Analizadores <strong><strong>sin</strong>táctico</strong>s recursivos <strong>descendente</strong>s<br />

Funcion A()<br />

inicio<br />

segun token-actual está en:<br />

INICIALES(α 1 ): { proceder según alternativa α 1 }<br />

INICIALES(α 2 ): { proceder según alternativa α 2 }<br />

...<br />

INICIALES(α n ): { proceder según alternativa α n }<br />

Fin-segun<br />

si token-actual no pertenece a ningún INICIALES (α n )<br />

entonces<br />

Fin<br />

error <strong><strong>sin</strong>táctico</strong>, excepto si existe la alternativa<br />

A → ε en cuyo caso no se hace nada.<br />

Página 49

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!