%{
#include <string.h>
int is_palindrome(char *str);
%}
%%
[a-zA-Z]+ {
if (is_palindrome(yytext))
printf("\"%s\" is a palindrome.\n", yytext);
else
printf("\"%s\" is NOT a palindrome.\n", yytext);
}
.|\n ;
%%
int is_palindrome(char *str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
if (str[i] != str[len - 1 - i])
return 0;
}
return 1;
}
int main() {
yylex();
return 0;
}
JXsKI2luY2x1ZGUgPHN0cmluZy5oPgppbnQgaXNfcGFsaW5kcm9tZShjaGFyICpzdHIpOwolfQoKJSUKW2EtekEtWl0rICB7CiAgICAgICAgICAgICAgaWYgKGlzX3BhbGluZHJvbWUoeXl0ZXh0KSkKICAgICAgICAgICAgICAgICAgcHJpbnRmKCJcIiVzXCIgaXMgYSBwYWxpbmRyb21lLlxuIiwgeXl0ZXh0KTsKICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgIHByaW50ZigiXCIlc1wiIGlzIE5PVCBhIHBhbGluZHJvbWUuXG4iLCB5eXRleHQpOwogICAgICAgICAgfQoufFxuICAgICAgIDsKJSUKCmludCBpc19wYWxpbmRyb21lKGNoYXIgKnN0cikgewogICAgaW50IGxlbiA9IHN0cmxlbihzdHIpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW4gLyAyOyBpKyspIHsKICAgICAgICBpZiAoc3RyW2ldICE9IHN0cltsZW4gLSAxIC0gaV0pCiAgICAgICAgICAgIHJldHVybiAwOwogICAgfQogICAgcmV0dXJuIDE7Cn0KCmludCBtYWluKCkgewogICAgeXlsZXgoKTsKICAgIHJldHVybiAwOwp9Cg==