%{
#include <stdio.h>
int valid = 0;
%}
%%
"int"([ \t]+)[a-zA-Z_][a-zA-Z0-9_]*"="[0-9]+; { /* initialization */ }
"while"[ \t]*"("[a-zA-Z_][a-zA-Z0-9_]*[<>=!]+[0-9a-zA-Z_]+")" { /* while condition */ }
"{" { /* opening brace */ }
"printf"[(][^)]*[)][;] { /* statement */ }
[a-zA-Z_][a-zA-Z0-9_]*("++"|"--")[;] { /* increment */ }
"}" { valid=1; }
.|\n { /* ignore other chars */ }
%%
int main(int argc,char *argv[])
{
if(argc>1)
yyin=fopen(argv[1],"r");
yylex();
if(valid==1)
printf("Success\n");
else
printf("Failure\n");
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CmludCB2YWxpZCA9IDA7CiV9CgolJQoiaW50IihbIFx0XSspW2EtekEtWl9dW2EtekEtWjAtOV9dKiI9IlswLTldKzsgICAgeyAvKiBpbml0aWFsaXphdGlvbiAqLyB9CiJ3aGlsZSJbIFx0XSoiKCJbYS16QS1aX11bYS16QS1aMC05X10qWzw+PSFdK1swLTlhLXpBLVpfXSsiKSIgIHsgLyogd2hpbGUgY29uZGl0aW9uICovIH0KInsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAvKiBvcGVuaW5nIGJyYWNlICovIH0KInByaW50ZiJbKF1bXildKlspXVs7XSAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgLyogc3RhdGVtZW50ICovIH0KW2EtekEtWl9dW2EtekEtWjAtOV9dKigiKysifCItLSIpWztdICAgICAgICAgICAgIHsgLyogaW5jcmVtZW50ICovIH0KIn0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgdmFsaWQ9MTsgfQoufFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAvKiBpZ25vcmUgb3RoZXIgY2hhcnMgKi8gfQolJQoKaW50IG1haW4oaW50IGFyZ2MsY2hhciAqYXJndltdKQp7CiAgICBpZihhcmdjPjEpCiAgICAgICAgeXlpbj1mb3Blbihhcmd2WzFdLCJyIik7CgogICAgeXlsZXgoKTsKCiAgICBpZih2YWxpZD09MSkKICAgICAgICBwcmludGYoIlN1Y2Nlc3NcbiIpOwogICAgZWxzZQogICAgICAgIHByaW50ZigiRmFpbHVyZVxuIik7CgogICAgcmV0dXJuIDA7Cn0K