#@title Writing YACC program
%%writefile program.y
%{
#include<stdio.h>
#include<stdlib.h>
%}
%token DIGIT LETTER UND NL
%%
stmt
: variable
NL {printf
("Valid Identifier\n"
);exit
(0);}variable: LETTER alphanumeric;
alphanumeric: LETTER alphanumeric
| DIGIT alphanumeric
| UND alphanumeric
| LETTER
| DIGIT
| UND;
%%
int yyerror(){
printf("Invalid Identifier\n");
exit(0);
}
void main(){
printf("Enter the variable name: ");
yyparse();
}
I0B0aXRsZSBXcml0aW5nIFlBQ0MgcHJvZ3JhbQolJXdyaXRlZmlsZSBwcm9ncmFtLnkKCiV7CiAgICAjaW5jbHVkZTxzdGRpby5oPgogICAgI2luY2x1ZGU8c3RkbGliLmg+CiV9CiV0b2tlbiBESUdJVCBMRVRURVIgVU5EIE5MCiUlCnN0bXQ6IHZhcmlhYmxlIE5MIHtwcmludGYoIlZhbGlkIElkZW50aWZpZXJcbiIpO2V4aXQoMCk7fQp2YXJpYWJsZTogTEVUVEVSIGFscGhhbnVtZXJpYzsKYWxwaGFudW1lcmljOiBMRVRURVIgYWxwaGFudW1lcmljCiAgICAgICAgICAgIHwgRElHSVQgYWxwaGFudW1lcmljCiAgICAgICAgICAgIHwgVU5EIGFscGhhbnVtZXJpYwogICAgICAgICAgICB8IExFVFRFUgogICAgICAgICAgICB8IERJR0lUCiAgICAgICAgICAgIHwgVU5EOwolJQoKaW50IHl5ZXJyb3IoKXsKICAgIHByaW50ZigiSW52YWxpZCBJZGVudGlmaWVyXG4iKTsKICAgIGV4aXQoMCk7Cn0KCnZvaWQgbWFpbigpewogICAgcHJpbnRmKCJFbnRlciB0aGUgdmFyaWFibGUgbmFtZTogIik7CiAgICB5eXBhcnNlKCk7Cn0=