Compilerlexyaac
Compilerlexyaac
matching
%{
#include<stdio.h>
int cnt1=0,cnt2=0,cnt3=0;
%}
%%
[(] {cnt1++;}
[)] {cnt1--;}
[[] {cnt2++;}
[]] {cnt2--;}
[{] {cnt3++;}
[}] {cnt3--;}
[a-z|A-Z] {}
[\n] {if((cnt1==0)&&(cnt2==0)&&(cnt3==0))printf("matching\n");
else printf("no matching\n");
cnt1=0;cnt2=0;cnt3=0;
}
. {}
%%
int main(int argc,char argv[])
{
yyin=fopen(argv[1],"r");
yylex();
}
%%
abc { printf("ABC"); }
.|\n { printf("%c", yytext[0]); }
%%
int yywrap()
{
return 1;
}
int vowel_count = 0;
int consonant_count = 0;
%}
%%
[aeiouAEIOU] { vowel_count++; }
[a-zA-Z] { consonant_count++; }
.|\n ; /* Ignore other characters */
%%