As I'm new to lexer and parser, so I'm trying to read and understand others code.
Here is the code i'm trying to use : https://gist.github.com/justjkk/436828
But it's giving me error. How can I resolve this?
E:\flex_bison_test>gcc lex.yy.c y.tab.c -o json.exe json.l: In function 'yylex': json.l:34:11: warning: assignment to 'YYSTYPE' {aka 'int'} from 'char *' makes integer from pointer without a cast [-Wint-conversion] yylval=strclone(yytext); ^ json.l:38:11: warning: assignment to 'YYSTYPE' {aka 'int'} from 'char *' makes integer from pointer without a cast [-Wint-conversion] yylval=strclone(yytext); ^ json.l: In function 'strclone': json.l:82:15: warning: implicit declaration of function 'strlen' [-Wimplicit-function-declaration] int len = strlen(str); ^~~~~~ json.l:82:15: warning: incompatible implicit declaration of built-in function 'strlen' json.l:82:15: note: include '<string.h>' or provide a declaration of 'strlen' json.l:79:1: +#include <string.h> %% json.l:82:15: int len = strlen(str); ^~~~~~ json.l:84:5: warning: implicit declaration of function 'strcpy' [-Wimplicit-function-declaration] strcpy(clone,str); ^~~~~~ json.l:84:5: warning: incompatible implicit declaration of built-in function 'strcpy' json.l:84:5: note: include '<string.h>' or provide a declaration of 'strcpy' y.tab.c: In function 'yyparse': y.tab.c:627:16: warning: implicit declaration of function 'yylex' [-Wimplicit-function-declaration] # define YYLEX yylex () ^~~~~ y.tab.c:1272:16: note: in expansion of macro 'YYLEX' yychar = YYLEX; ^~~~~ y.tab.c:1540:7: warning: implicit declaration of function 'yyerror'; did you mean 'yyerrok'? [-Wimplicit-function-declaration] yyerror (YY_("syntax error")); ^~~~~~~ yyerrok json.y: At top level: json.y:80:6: warning: conflicting types for 'yyerror' void yyerror (char const *s) { ^~~~~~~ y.tab.c:1540:7: note: previous implicit declaration of 'yyerror' was here yyerror (YY_("syntax error")); ^~~~~~~ E:\flex_bison_test> Or these should remain as it is.
All the commands, I have given :
flex json.l bison -dy json.y gcc lex.yy.c y.tab.c -o json.exe