Parser in C

 
一、             需要的文件
l         flex.exe & bison.exe
l         cygwin1.dll
l         BISON.SIM
l         Flexlib.lib
 
二、             操作步骤
1.             将所需要的文件置于同一目录下。
2.             编写词法分析文件 (*.l) 、语法分析文件 (*.y) 文件,并将其放置于所需文件的目录下面。
3.             在同一目录下,新建 *.BAT 文件,输入以下内容:
                      flex  -is  [Name].l
                      bison  -d  -v  [Name].y
4.             运行 *.BAT 文件,在当前目录下,生成 lex.yy.c & Y_TAB.H & Y_TAB.C 文件。
5.             VC 6.0 中新建工程,选择 “Win32 Console Application” è “a simple application” è ”OK” .
6.             将之前生成的 lex.yy.c & Y_TAB.H & Y_TAB.C 文件与 Flexlib.lib 剪切到工程目录下,把 lex.yy.c & Y_TAB.H & Y_TAB.C 添加到工程中,并在 Project à Settings à Link à Object/library modules 中添加“ flexlib.lib .
7.             Project à Settings à C/C++ à Precompiled Headers 下,选择“ Automatic use of precompiled headers .
8.             Project à Settings à Link à Input à Ignore libraries 下输入“ Libcd.lib .
9.             Compiler à OK !
10.         Project main 函数中,可以先将要解析得文件指针 (FILE*) 传给 yyin ,把要输出的文件指针传给 yyout ,之后调用 yyparse() 开始进行解析!(参考 SampleCode/Test
 
三、             应用举例
l         XASM8 ( *.asm è *.obj)
Ø             编写好 6502 汇编语言格式的词法和语法分析文件 common.l & first.y & second.y , 通过上述步骤搭建好 XASM8 工程。
Ø             XASM8 工程中,解析命令行传进来的参数信息,解析出 Input File List & Output File Name , Input File Pointer(*.asm) 传递给 yyin , Output File Pointer(*.obj) 传递给 yyout, 之后只要调用 yyparse() 自动对 Input File 进行解析即可。
Ø             OBJ File 的动作会在 *.y 文件中定义,在主工程中只需调用 yyparse() 之后自动生成 OBJ File 。故重点在于( *.l & *.y 文件)!!
 

你可能感兴趣的:(windows,Flex,parser,休闲,bison)