%{
#include <stdio.h>
#include <stdlib.h>
%}
digit [0-9]
number {digit
}+ /* Matches a sequence of digits representing a number */
%%
int num
= atoi
(yytext
); // Convert the matched text to an
integer if (num % 2 == 0) {
printf("%d is even\n", num);
} else {
printf("%d is odd\n", num);
}
}
%%
int main(int argc, char *argv[]) {
if (argc > 1) {
yylex(); // Run lexical analyzer on the input string
} else {
printf
("Please provide a
number as an argument
.\n"
); }
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiV9CgpkaWdpdCAgIFswLTldCm51bWJlciAge2RpZ2l0fSsgIC8qIE1hdGNoZXMgYSBzZXF1ZW5jZSBvZiBkaWdpdHMgcmVwcmVzZW50aW5nIGEgbnVtYmVyICovCgolJQoKe251bWJlcn0gIHsKICAgICAgICAgICAgaW50IG51bSA9IGF0b2koeXl0ZXh0KTsgIC8vIENvbnZlcnQgdGhlIG1hdGNoZWQgdGV4dCB0byBhbiBpbnRlZ2VyCiAgICAgICAgICAgIGlmIChudW0gJSAyID09IDApIHsKICAgICAgICAgICAgICAgIHByaW50ZigiJWQgaXMgZXZlblxuIiwgbnVtKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHByaW50ZigiJWQgaXMgb2RkXG4iLCBudW0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKJSUKCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKICAgIGlmIChhcmdjID4gMSkgewogICAgICAgIHl5bGV4KCk7ICAvLyBSdW4gbGV4aWNhbCBhbmFseXplciBvbiB0aGUgaW5wdXQgc3RyaW5nCiAgICB9IGVsc2UgewogICAgICAgIHByaW50ZigiUGxlYXNlIHByb3ZpZGUgYSBudW1iZXIgYXMgYW4gYXJndW1lbnQuXG4iKTsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==