<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><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></body>
</html>