配置 WinFlexBison VS2017

2019-05-18  本文已影响0人  孤泉冷月

WinFlexBison 下载地址:
https://sourceforge.net/projects/winflexbison/?source=typ_redirect

配置环境:
window10 VS2017
win_flex_bison-latest.zip 解压到 E:\FlexBison 目录下


WinFlexBison.png
1.0新建项目.png 1.1新建项目.png 2.0设置依赖项.png 2.1设置依赖项.png 2.2设置依赖项.png

可能有弹框 点确定就好

2.3设置依赖项.png 3.0设置可执行目录.png 3.1设置可执行目录.png 3.2设置可执行目录.png 4.0编译运行.png
//Parser.y
%{

#include <stdio.h>
#include <ctype.h>
#include <math.h>

#define YYSTYPE  double

void yyerror(const char *text);

int yylex(void);
%}

/////////////////////////////////////////////////////////////////////////////
// declarations section
// place any declarations here

%token NUMBER

%left '+' '-'
%left '*' '/'
%right '^'
%%

/////////////////////////////////////////////////////////////////////////////
// rules section
// place your YACC rules here (there must be at least one)
command : exp {printf("%lf\n",$1);}
    ;

exp     : NUMBER         {$$ = $1;}
       | exp '+' exp     {$$ = $1 + $3;}
       | exp '-' exp     {$$ = $1 - $3;}
       | exp '*' exp     {$$ = $1 * $3;}
       | exp '/' exp     {
                            if(0 != $3)
                            {
                               $$ = $1 / $3;
                            }
                            else
                            {
                               $$=0;
                            }
                        }
       | exp '^' exp     {$$ = pow($1,$3);}
       | '(' exp ')'     {$$ = $2;}
    ;
%%

/////////////////////////////////////////////////////////////////////////////
// programs section

int yylex(void)
{
   // place your token retrieving code here
   int c = 0;

   while( (c = getchar()) == ' ');
   if( isdigit(c) )
   {
       ungetc(c,stdin);
       scanf_s("%lf",&yylval);
       return (NUMBER);
   }

   if( '\n' == c )
   {
       return 0;
   }
   return c;
}

int main(void)
{
    yyparse();
    system("PAUSE");
    return 0;
}

void yyerror(const char *text)
{
   fprintf(stderr,"%s\n",text);
}
4.1编译运行.png 4.2编译运行.png 4.3编译运行.png 4.4编译运行.png 4.5编译运行.png 4.6编译运行.png 4.7编译运行.png 4.7.1编译运行.png 4.7.2编译运行.png 4.8编译运行.png

参考 https://www.jianshu.com/p/a3aa021a0182

上一篇下一篇

猜你喜欢

热点阅读