Program : 4b.y
Aim:
Program to recognize a valid variable, which starts with a letter, followed by any number of letters or digits.
Description:
This program checks if the given variable is valid or invalid. A variable should start with a letter followed any no of letters or digits.For example a123 or aa23 or b3455 etc are valid variables.Example for invalid expression 12aa or 1cc etc.
Code:
%{
#include<stdio.h>
#include<stdlib.h>
%}
%token DIGIT ALPHA
%%
variable:ALPHA
|variable ALPHA
| variable DIGIT
;
%%
yyerror()
{
printf("Invalid expression\n");
exit(0);
}
int main()
{
printf("Enter the variable\n");
yyparse();
printf("Valid variable\n");
return 0;
}
Program : 4b.l (Lex Specification)
Code:
%{
#include"y.tab.h"
%}
%%
[0-9] return DIGIT;
[a-zA-Z] return ALPHA;
. return yytext[0];
\n return 0;
%%
Output:
1.Enter the variable
a345
Valid variable
2.Enter the variable
34aaa
Invalid expression