Si es en linux, al parecer yacc no puede actuar sin lex, al instalar lex me he quitado el problema de las librerías pero como es costumbre los errores suelen ir a mas, por lo que he estado investigando el protocolo para yacc es algo rebuscado,<br>
<br>No se si estas familiarizado con este programa, pero al parecer hay que crear un archivo .txt, en el cual tienes que incluir y.tab.h, donde defines los símbolos terminales para el autómata, que al pasárselo a lex genera lex.yy.c, este lo incluyes en el .txt que le pasas a yacc con el lenguaje, con la opción de -d te genera ademas de y.tab.c, y.tab.h que si lo incluyes en el primer .txt y lo pasas nuevamente por lex, te da el definitivo lex.yy.c, y en principio ya puedes compilar con gcc o g++ y la opción -lfl.<br>
<br>Alguno de estos pasos del rompecabezas tengo que estar haciendo mal ya que ahora la salida es la siguiente:<br><br> g++ lex.yy.c -o ejecutable -lfl -ll -lm<br>lex.yy.c:520: error: expected ‘,’ or ‘...’ before numeric constant<br>
lexico.txt: In function ‘int yylex()’:<br>lexico.txt:5: error: ‘cero’ was not declared in this scope<br>lexico.txt:6: error: ‘uno’ was not declared in this scope<br>lexico.txt:7: error: ‘central’ was not declared in this scope<br>
lex.yy.c: In function ‘int yy_get_next_buffer()’:<br>lex.yy.c:951: error: expected unqualified-id before numeric constant<br>lex.yy.c:954: error: base operand of ‘->’ is not a pointer<br>lex.yy.c:956: error: base operand of ‘->’ is not a pointer<br>
lex.yy.c:958: error: base operand of ‘->’ is not a pointer<br>lex.yy.c:961: error: base operand of ‘->’ is not a pointer<br>lex.yy.c:961: error: base operand of ‘->’ is not a pointer<br>lex.yy.c:963: error: base operand of ‘->’ is not a pointer<br>
lex.yy.c:965: error: base operand of ‘->’ is not a pointer<br>lex.yy.c:967: error: base operand of ‘->’ is not a pointer<br>lex.yy.c:967: error: base operand of ‘->’ is not a pointer<br>lex.yy.c:971: error: base operand of ‘->’ is not a pointer<br>
lex.yy.c:973: error: base operand of ‘->’ is not a pointer<br>lex.yy.c:977: error: base operand of ‘->’ is not a pointer<br>lex.yy.c:988: error: expected unqualified-id before numeric constant<br>lex.yy.c:988: error: lvalue required as left operand of assignment<br>
lex.yy.c: At global scope:<br>lex.yy.c:1087: error: expected ‘,’ or ‘...’ before numeric constant<br>lex.yy.c: In function ‘void yyunput(int)’:<br>lex.yy.c:1109: error: ‘yy_bp’ was not declared in this scope<br>lex.yy.c:1119: error: ‘yy_bp’ was not declared in this scope<br>
lex.yy.c: In function ‘int yyinput()’:<br><br>Bueno y muchos mas que no es cuestión de poner en este mensaje.<br><br><div class="gmail_quote">El 14 de mayo de 2010 09:55, Manuel L. <span dir="ltr"><<a href="mailto:notret@gmx.es">notret@gmx.es</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><br>
Hola, Josmeagol:<br>
<br>
Yacc está disponible para distintas plataformas, y las librerías que utilice pueden variar. También dependerá del código que ud. haya añadido a mayores. Suele ser común en un sistema basado en Linux, usar las librerías l y m, lo que significa que tendría que añadir las opciones -lm y -ll. Primero pruebe a compilar sin nada, y luego vaya pobando si el código generado necesita alguna.<br>

<br>
Por cierto que he hablado de Linux porque deduzco, a partir de los mensajes de errores, que usó el compilador gcc instalado en un sistema Linux. Espero no haberme equivocado.<br>
<br>
Saludos.<br>
<div class="im"><br>
j> Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
</div><div class="im">j> <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>
</div><div class="im">j> 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>
</div><div><div></div><div class="h5">_______________________________________________<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>
</div></div></blockquote></div><br>