¿Cómo compilo el archivo lex con gcc sin recibir las siguientes advertencias?¿Cómo elimino las siguientes advertencias de 'declaración implícita de función'?
lex.yy.c: In function `yy_init_buffer':
lex.yy.c:1688: warning: implicit declaration of function `fileno'
lex.l: In function `storeLexeme':
lex.l:134: warning: implicit declaration of function `strdup'
Estas son las bibliotecas que incluí.
%{
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
%}
La función yy_init_buffer no está en el archivo. La siguiente es la función storeLexeme.
int storeLexeme() {
for (int i = 0; i < count; i++) {
char *curr = *(symbolTable + i);
if (strcmp(curr, yytext) == 0) {
return i;
}
}
char *lexeme = (char *)malloc(sizeof(char *));
lexeme = (char *)strdup(yytext);
symbolTable[count] = lexeme;
count++;
return (count - 1);
}
¿Cómo elimino las advertencias?
Cambié la etiqueta de flexión, ya que se trata de Adobe flex y no del clon GNU lex. –
¿Qué plataforma, UNIX o Windows? – paxdiablo
Esas no son 'bibliotecas'; ellos son 'encabezados'. Las bibliotecas se usan en la línea de enlace; el código fuente hace referencia a los encabezados. –