|
|
由flex导出词法分析文件lex.yy.c,由bison导出语法分析文件h330_tab.c和h330_tab.h
下面分别是导出前的词法分析文件h330.l和语法分析文件h330.y
-------------------------------h330.l---------------------------------
%{
#include <string.h>
#include <malloc.h>
#include <stdlib.h>
%}
ALPHABET [A-Za-z]
NUMBER [0-9]
SPACE [" "\n\t]
%%
{ALPHABET}({ALPHABET}|{NUMBER})* {return C_IDENTIFIER;}
{SPACE} {;}
%%
int yywrap()
{
return 1;
}
-------------------------------h330.y---------------------------------
%{
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
void yyerror(char* err);
%}
%union
{
int _ival;
char* _string;
}
%token <_string> C_IDENTIFIER
%type <_string> ID
%start ID
%%
ID : C_IDENTIFIER { $$ = $1;}
;
%%
#include "lex.yy.c"
void yyerror(char* err)
{
}
将导出后的c语言源代码加入到工程后编译出错,第一个错误的出错提示为C_IDENTIFIER未定义,错误点在h330.l文件的return C_IDENTIFIER那里.
请问接触过脚本引擎的各位,你们是如何将词法分析文件和语法分析文件整合到工程当中的? |
|