想问一下在bison中byacc的使用命令的方法
以下是我编写的一段代码%{#defineYYSTYPEdouble#include<stdio.h>#include<math.h>#include<ctype.h>%}...
以下是我编写的一段代码
%{
#define YYSTYPE double
#include<stdio.h>
#include<math.h>
#include<ctype.h>
%}
%token NUM
%%
input:|input line
;
line: '\n'
|exp'\n'{printf("\t%.10g\n");}
;
exp: NUM {$$=$1;}
|exp exp'+' {$$=$1+$2;}
|exp exp'-' {$$=$1-$2;}
|exp exp'*' {$$=$1*$2;}
|exp exp'*' {$$=$1/$2;}
|exp exp'^' {$$=pwo($1,$2);}
|exp 'n' {$$=-$;}
%%
main()
{
yyparse();
}
yyerror(s)
char *s;
{
printf("%s\n",s);
}
int yylex()
{
int c;
while((c=getchar())==''c='\t')
;
if(c=='.'||isdigit(c))
{
ungetc(c,stdin);
scanf("%lf",&yylval);
return NUM;
}
if(c==EOF)
return 0;
return c;
}
这段代码在dos环境下使用什么命令才可以使之编译运行 展开
%{
#define YYSTYPE double
#include<stdio.h>
#include<math.h>
#include<ctype.h>
%}
%token NUM
%%
input:|input line
;
line: '\n'
|exp'\n'{printf("\t%.10g\n");}
;
exp: NUM {$$=$1;}
|exp exp'+' {$$=$1+$2;}
|exp exp'-' {$$=$1-$2;}
|exp exp'*' {$$=$1*$2;}
|exp exp'*' {$$=$1/$2;}
|exp exp'^' {$$=pwo($1,$2);}
|exp 'n' {$$=-$;}
%%
main()
{
yyparse();
}
yyerror(s)
char *s;
{
printf("%s\n",s);
}
int yylex()
{
int c;
while((c=getchar())==''c='\t')
;
if(c=='.'||isdigit(c))
{
ungetc(c,stdin);
scanf("%lf",&yylval);
return NUM;
}
if(c==EOF)
return 0;
return c;
}
这段代码在dos环境下使用什么命令才可以使之编译运行 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询