//parser.
%{
#include<stdio.h> #include "y.tab.h
%}
%%
[0-9]+ {yylval.dval=atof(yytext);
return DlGIT;
}
In|. return yytext(0);
%%
//parser.y
{%
/*This YACC specification file generates the LALR parser for the program considered in experiment
4*/
#include<stdio.h>
%}
%union
{
double dval;
}
%token <dval> DIGIT
%type <dval> expr
%type <dvab term
%type <dval> factor
%%
line: expr "\n'{
;
printf("%g\n'"$1);
}
expr: expr'+" term {$$=$1+ $3;}
| term
;
term: term * factor {$$=$1* $3;}
| factor
;
factor: '(' expr')' {$$=$2;}
| DIGIT
;
%%
int main()
{
YYparse();
}
yyerror(char *s)
{
printf("%s"s);
}
Ly9wYXJzZXIuIAoleyAKI2luY2x1ZGU8c3RkaW8uaD4gI2luY2x1ZGUgInkudGFiLmggCiV9CiUlIApbMC05XSsge3l5bHZhbC5kdmFsPWF0b2YoeXl0ZXh0KTsgCnJldHVybiBEbEdJVDsgCn0KSW58LiByZXR1cm4geXl0ZXh0KDApOyAKJSUgCi8vcGFyc2VyLnkgCnslCi8qVGhpcyBZQUNDIHNwZWNpZmljYXRpb24gZmlsZSBnZW5lcmF0ZXMgdGhlIExBTFIgcGFyc2VyIGZvciB0aGUgcHJvZ3JhbSBjb25zaWRlcmVkIGluIGV4cGVyaW1lbnQgCjQqLyAKI2luY2x1ZGU8c3RkaW8uaD4gCiV9IAoldW5pb24gCnsKZG91YmxlIGR2YWw7IAp9CiV0b2tlbiA8ZHZhbD4gRElHSVQgCiV0eXBlIDxkdmFsPiBleHByIAoldHlwZSA8ZHZhYiB0ZXJtIAoldHlwZSA8ZHZhbD4gZmFjdG9yIAolJSAKbGluZTogZXhwciAiXG4newo7CnByaW50ZigiJWdcbiciJDEpOyAKfQpleHByOiBleHByJysiIHRlcm0geyQkPSQxKyAkMzt9IAp8IHRlcm0gCjsKdGVybTogdGVybSAqIGZhY3RvciB7JCQ9JDEqICQzO30gCnwgZmFjdG9yIAo7CmZhY3RvcjogJygnIGV4cHInKScgeyQkPSQyO30gCnwgRElHSVQgCjsKJSUgCmludCBtYWluKCkgCnsKWVlwYXJzZSgpOwp9Cnl5ZXJyb3IoY2hhciAqcykgCnsKcHJpbnRmKCIlcyJzKTsKfQ==