X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fgrub2%2Flexer.l;h=e1aad9931252f98be623a5fc87035a61f3de4ef2;hp=aca474af3e96e286deed352230d557e3d246d808;hb=ffc167572a9d56c52908aebefe62ba3e3e2a9cf8;hpb=bda4feeab43ec0ef8bf2bf63d54d81ab54f3ba51 diff --git a/discover/grub2/lexer.l b/discover/grub2/lexer.l index aca474a..e1aad99 100644 --- a/discover/grub2/lexer.l +++ b/discover/grub2/lexer.l @@ -3,6 +3,8 @@ #include "grub2.h" #include "parser.h" #include + +void yyerror(struct grub2_parser *parser, const char *fmt, ...); %} %option nounput noinput @@ -29,7 +31,7 @@ VARNAME ([[:alpha:]][_[:alnum:]]*|[0-9]|[\?@\*#]) /* discard leading & trailing whitespace, but keep inter-word delimeters */ ^[ \t]+ ; [ \t]+$ ; -[ \t]* return TOKEN_DELIM; +[ \t]+ return TOKEN_DELIM; /* reserved words */ "[[" return TOKEN_LDSQBRACKET; @@ -118,7 +120,10 @@ VARNAME ([[:alpha:]][_[:alnum:]]*|[0-9]|[\?@\*#]) /* strip comments */ #.* ; -. printf("unknown token '%s'\n", yytext); exit(1); +. { + yyerror(yyget_extra(yyscanner), "unknown token '%s'\n", yytext); + yyterminate(); + } %%