%{
#include <stdio.h>
%}
%%
[0-9]+ { printf
("
Integer part recognized
: %s\n", yytext); return 1; } [0-9]*\
.[0-9]+ { printf
("Floating
-point
number recognized
: %s\n", yytext); return 1; } [0-9]+(\
.[0-9]+)?
([eE
][+-]?
[0-9]+) { printf
("Floating
-point
number with exponent recognized
: %s\n", yytext); return 1; } . { return 0; } // Invalid character
\n { /* Do nothing on newline */ }
%%
int main() {
printf("Enter a string to validate:\n");
int token_type = yylex();
if (token_type == 1) {
printf
("String
is a valid floating
-point
number.\n"
); } else {
printf
("String
is NOT a valid floating
-point
number.\n"
); }
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiV9CgolJQoKWzAtOV0rICAgICAgICAgICAgeyBwcmludGYoIkludGVnZXIgcGFydCByZWNvZ25pemVkOiAlc1xuIiwgeXl0ZXh0KTsgcmV0dXJuIDE7IH0KWzAtOV0qXC5bMC05XSsgICAgeyBwcmludGYoIkZsb2F0aW5nLXBvaW50IG51bWJlciByZWNvZ25pemVkOiAlc1xuIiwgeXl0ZXh0KTsgcmV0dXJuIDE7IH0KWzAtOV0rKFwuWzAtOV0rKT8oW2VFXVsrLV0/WzAtOV0rKSB7IHByaW50ZigiRmxvYXRpbmctcG9pbnQgbnVtYmVyIHdpdGggZXhwb25lbnQgcmVjb2duaXplZDogJXNcbiIsIHl5dGV4dCk7IHJldHVybiAxOyB9Ci4gICAgICAgICAgICAgICAgIHsgcmV0dXJuIDA7IH0gIC8vIEludmFsaWQgY2hhcmFjdGVyClxuICAgICAgICAgICAgICAgIHsgLyogRG8gbm90aGluZyBvbiBuZXdsaW5lICovIH0KCiUlCgppbnQgbWFpbigpIHsKICAgIHByaW50ZigiRW50ZXIgYSBzdHJpbmcgdG8gdmFsaWRhdGU6XG4iKTsKICAgIGludCB0b2tlbl90eXBlID0geXlsZXgoKTsKICAgIGlmICh0b2tlbl90eXBlID09IDEpIHsKICAgICAgICBwcmludGYoIlN0cmluZyBpcyBhIHZhbGlkIGZsb2F0aW5nLXBvaW50IG51bWJlci5cbiIpOwogICAgfSBlbHNlIHsKICAgICAgICBwcmludGYoIlN0cmluZyBpcyBOT1QgYSB2YWxpZCBmbG9hdGluZy1wb2ludCBudW1iZXIuXG4iKTsKICAgIH0KICAgIHJldHVybiAwOwp9