initial.l「初始」處理在彎曲和野牛
%{
#include "initial.tab.h"
%}
%%
」initial」 {return INITIAL;}
[()] {return yytext[0];}
.
%%
int yywrap(void)
{
return(1);
}
工作工作initial.y
%{
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#define YYDEBUG 1
char *filename;
FILE *fp;
%}
%token INITIAL
%%
initial:'(' INITIAL ')'
;
%%
main(argc,argv)
int argc;
char **argv;
{
extern FILE* yyin;
if (argc >1 && !strcmp(argv[1],"-d"))
{
yydebug =1;
argc--;
argv++;
}
if(argc >1)
{
if((yyin = fopen(argv[1],"r"))==NULL)
{perror(argv[1]);
exit(1);
}
filename=argv[1];
}
else
filename="(stdin)" ;
if(!yyparse())
printf("Done!\n");
else
printf("Fail!\n");
}
數據文件:(初始)
兩個程序是我的程序的一部分。單詞「initial」是initial.l中定義的關鍵字,但它似乎也是flex本身的關鍵字。 表達「初始」部分句法結構的方法已經過測試。輸入:語法錯誤 失敗! 輸出我的完整程序: zhou:318.19-318.25:語法錯誤,意外$ end,期待CHANGE或STEADY或INITIAL
如何解決這樣的問題?
實際上,「initial」是EDIF(電子設計交換格式)的關鍵字,它有它自己的語法,我什麼都不能改變。非常感謝您的建議。 – zhou 2013-03-03 12:00:55
真的,我不是建議更改關鍵字的語法,而是用來操縱它的名稱。粗略地說,我並不是建議改變π的值,而是使用'PI'作爲名稱。 – akim 2013-03-04 12:39:34