( FileName ) :-
get_input_from_file( FileName, TokenList ),
lex( TokenList, OutputList ),
%write_output( OutputList ), !.
maplist(writeln,OutputList),!.
%% atom_number(atom, number)
lex([],[]).
lex(['int' | T], ['TYPE: int' | R]) :- lex(T, R).
lex(['bool' | T], ['TYPE: bool'] | R) :- lex(T, R).
lex([',' | T], ['COMMA: ,'] | R) :- lex(T, R).
lex([X | T], [X | R]) :- lex(T, R).
KCBGaWxlTmFtZSApIDotCglnZXRfaW5wdXRfZnJvbV9maWxlKCBGaWxlTmFtZSwgVG9rZW5MaXN0ICksCglsZXgoIFRva2VuTGlzdCwgT3V0cHV0TGlzdCApLAoJJXdyaXRlX291dHB1dCggT3V0cHV0TGlzdCApLCAhLgoJbWFwbGlzdCh3cml0ZWxuLE91dHB1dExpc3QpLCEuCgolJSBhdG9tX251bWJlcihhdG9tLCBudW1iZXIpCmxleChbXSxbXSkuCmxleChbJ2ludCcgfCBUXSwgWydUWVBFOiBpbnQnIHwgUl0pIDotICBsZXgoVCwgUikuCmxleChbJ2Jvb2wnIHwgVF0sIFsnVFlQRTogYm9vbCddIHwgUikgOi0gbGV4KFQsIFIpLgpsZXgoWycsJyB8IFRdLCBbJ0NPTU1BOiAsJ10gfCBSKSA6LSBsZXgoVCwgUikuCmxleChbWCB8IFRdLCBbWCB8IFJdKSA6LSBsZXgoVCwgUikuCg==
JXsKI2luY2x1ZGUmcXVvdDtleDNhLnRhYi5oJnF1b3Q7CiV9CiUlCiZxdW90Oz0mcXVvdDt7cHJpbnRmKCZxdW90O1xuT3BlcmF0b3Jpc0VRVUFMJnF1b3Q7KTt9CiZxdW90OysmcXVvdDt7cHJpbnRmKCZxdW90O1xuT3BlcmF0b3Jpc1BMVVMmcXVvdDspO30mcXVvdDstJnF1b3Q7e3ByaW50ZigmcXVvdDtcbk9wZXJhdG9yaXNNSU5VUyZxdW90Oyk7fQomcXVvdDsvJnF1b3Q7e3ByaW50ZigmcXVvdDtcbk9wZXJhdG9yaXNESVZJU0lPTiZxdW90Oyk7fQomcXVvdDsmcXVvdDt7cHJpbnRmKCZxdW90O1xuT3BlcmF0b3Jpc01VTFRJUExJQ0FUSU9OJnF1b3Q7KTt9ClthLXpBLVpdWzAtOV0qe3ByaW50ZigmcXVvdDtcbklkZW50aWZpZXJpcyVzJnF1b3Q7LHl5dGV4dCk7cmV0dXJuSUQ7fQoucmV0dXJueXl0ZXh0WzBdOwpcbnJldHVybjA7CiUlCmludHl5d3JhcCgpCnsKcmV0dXJuMTsKfQpZQUNDUEFSVDpleDNhLnkKJXsKI2luY2x1ZGUmbHQ7c3RkaW8uaCZndDsKJX0KJXRva2VuQQoldG9rZW5JRAoKJSUKc3RhdGVtZW50OkEnPSdFCnxFewpwcmludGYoJnF1b3Q7XG5WYWxpZGFyaXRobWV0aWNleHByZXNzaW9uJnF1b3Q7KTsKCj0kMTsKfTtFOkUnKydJRAp8RSctJ0lECnxFJydJRAp8RScvJ0lECnxJRAo7CiUlCmV4dGVybkZJTEV5eWluO21haW4oKQp7CmRvCnsKeXlwYXJzZSgpOwp9d2hpbGUoIWZlb2YoeXlpbikpOwp9Cnl5ZXJyb3IoY2hhcipzKQp7Cn0K
%{
#include"ex3a.tab.h"
%}
%%
"="{printf("\nOperatorisEQUAL");}
"+"{printf("\nOperatorisPLUS");}"-"{printf("\nOperatorisMINUS");}
"/"{printf("\nOperatorisDIVISION");}
""{printf("\nOperatorisMULTIPLICATION");}
[a-zA-Z][0-9]*{printf("\nIdentifieris%s",yytext);returnID;}
.returnyytext[0];
\nreturn0;
%%
intyywrap()
{
return1;
}
YACCPART:ex3a.y
%{
#include<stdio.h>
%}
%tokenA
%tokenID
%%
statement:A'='E
|E{
printf("\nValidarithmeticexpression");
=$1;
};E:E'+'ID
|E'-'ID
|E''ID
|E'/'ID
|ID
;
%%
externFILEyyin;main()
{
do
{
yyparse();
}while(!feof(yyin));
}
yyerror(char*s)
{
}