给定文法G[H]:(H1为非终结符) H-> MH1 H1-> ;MH1|空串 M-> d|aHb 编写该文法非终结符的递归下降子程序代码,用c语言,匹配指令使用Match()
时间: 2024-03-14 10:45:37 浏览: 121
以下是该文法的非终结符的递归下降子程序代码,使用C语言编写,其中Match()函数用于匹配指令:
```c
#include <stdio.h>
#include <ctype.h>
char lookahead;
void Match(char c)
{
if (lookahead == c)
lookahead = getchar();
else
printf("error\n");
}
void H()
{
M();
H1();
}
void H1()
{
if (lookahead == ';')
{
Match(';');
M();
H1();
}
else
return;
}
void M()
{
if (lookahead == 'd')
{
Match('d');
}
else if (lookahead == 'a')
{
Match('a');
H1();
Match('b');
}
else
printf("error\n");
}
int main()
{
lookahead = getchar();
H();
if (lookahead != '\n')
printf("error\n");
return 0;
}
```
阅读全文