我正在编写一个YACC程序,在给定的字符串中定义元音的CFG,我的代码尝试如下
%{
#include <stdio.h>
%}
%union{
char c;
}
%token <c> VOW
%%
cha : 'a' { printf("a\n"); }
| 'e' {printf("e\n");}
| 'i' {printf("i\n");}
| 'o' {printf("o\n");}
| 'u' {printf("u\n");}
;
%%
int main(void) {return yyparse();}
int yylex(void) {return getchar();}
void yyerror(char *s) {fprintf(stderr, "%s\n",s);}
这是元音CFG的正确定义吗
对于您的问题,您不需要上下文无关的语法,而只需定期进行表达即可。您为该工作使用了错误的工具。在flex(1)中是三行:
%%
[aeiou] printf("%\n", yytext);
.|\n ;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句