现在的位置: 首页 > 综合 > 正文

[ZZ]bison flex for windows 使用说明

2013年09月08日 ⁄ 综合 ⁄ 共 1149字 ⁄ 字号 评论关闭

you will need the lastest versions of:

  1. flex-2.5.4a-1.exe

  2. bison-2.4.1-setup.exe

  3. After that, do a full install in a directory of your preference without
    spaces in the name
    . I suggestC:\GnuWin32.
    Do not install
    it in the default (C:\Program
    Files (x86)\GnuWin32) because bison has problems with spaces in directory names, not to say parenthesis.

  4. Also, consider installing Dev-CPP in
    the default directory (C:\Dev-Cpp)

  5. After that, set the PATH variable to include the bin directories of gcc (in C:\Dev-Cpp\bin)
    andflex\bison (in C:\GnuWin32\bin).
    To do that, copy this: ;C:\Dev-Cpp\bin;C:\GnuWin32\bin and
    append it to the end of the PATH variable,
    defined in the place show by this figure:
    step-by-step to set PATH variable under Win-7.
    If the figure is not in good resolution, you can see a step-by-step
    here
    .

  6. Open a prompt, cd to the directory where your ".l" and ".y" are, and compile them with:

    1. flex
      hello.l
    2. bison
      -dy hello.y
    3. gcc
      lex.yy.c y.tab.c -o hello.exe

Commands to create lexical analyzer, parser and executable.

You will be able to run the program. I made the sources for a simple test (the infamous Hello
World
):

Hello.l

  %{

  #include <stdlib.h>
  #include "y.tab.h"

  %}

  %%

  ("hi"|"oi")"\n"       { return HI;  }
  ("tchau"|"bye")"\n"   { return BYE; }
  .                     { yyerror();  }

  %%

  int main(void)
  {
     yyparse();
     return 0;
  }

  int yywrap(void)
  {
     return 0;
  }

  int yyerror(void)
  {
      printf("Error\n");
      exit(1);
  }

Hello.y

抱歉!评论已关闭.