<p>Busca info sobre lex y yacc. Entre los dos te harán lo q quieres.</p>
<p>Salu2</p>
<div class="gmail_quote">El 05/04/2012 09:28, "Jose Armando Barrios Leon" <<a href="mailto:jose-bar@hotmail.com">jose-bar@hotmail.com</a>> escribió:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div><div dir="ltr">
Saludos cordiales a todos, <br>Tengo un problema para convertir una gramatica a codigo en vc++.<br>Supongamos que tengo una gramatica asi:<br><br>CONJUNTOS->ID '=' ELEMENTOS<br><blockquote>| ID '=' ELEMENTOS CONJUNTOS<br>
</blockquote><br>la puedo pasar a codigo asi:<br><br>void CONJUNTOS()<br>{<br><blockquote>ID();<br>if(siguiente_elemento != "=")<br><blockquote> error();<br></blockquote>ELEMENTOS();<br>if(siguiente_elemento == otro_id)<br>
<blockquote>CONJUNTOS();<br></blockquote></blockquote>}<br><br>bueno, lo anterior era solo un ejemplo y las funciones ahi enumeradas no son relevantes.<br>En realidad, tengo un problema para crear una gramatica que evalue si la expresion regular ingresada por el usuario es valida, por ejemplo, una expresion correcta seria:<br>
LETRA (LETRA|DIGITO)*<br>donde LETRA y DIGITO son conjuntos ya definidos. Una expresion incorrecta seria:<br>*LETRA((LETRA ||DIGITO)<br>porque falta un ')', hay dos '|' y el asterisco no lleva antes algun conjuto o caracter.<br>
<br>Tengo una gramatica algo parecido a esta:<br>EXP->ELEMENTO EXP<br><blockquote>| ELEMENTO</blockquote><blockquote>| '(' EXP ')'<br>| EXP '|' EXP<br>| EXP '*'<br></blockquote><br>donde ELEMENTO es el conjunto de cosas que el usuario puede escribir.<br>
<br>Entonces, en concreto quisiera saber si mi gramatica va en buen camino para validar las expresiones y cómo puedo hacer para pasarla a codigo.<br><br>Muchas gracias desde ya por la atencion. <br>                                    </div></div>

<br>_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br></blockquote></div>