主题:[讨论]C++写的语法分析器,有些问题,请大家改正一下
在主题为"C++的词法和语法分析"的回帖中compiler提供了一个C++程序
问题:
(1)小弟编译后发现遗漏了一个函数isLeftRecursion(),该函数功能是判断输入文法是否是左递归的,没办法,我只好增加了这个函数,默认返回为false
请大家看一下这个函数怎么写
(2)形成exe文件后,运行,输入文法后,程序好象没有给出分析结果
是我输入错误还是程序问题啊?
输入及结果如下:(输入的文法为LL(1)文法)
LL(1) parsing machine @ Math Frog && FLower @
** Please input the grammer you want to process **
** REMIND : Just type a space after entering a symbol **
** press # to end inputing production **
** press $ to end inputing grammer **
***********************************
line 0: S->BA
#
line 1: A->BS|d
#
line 2: B->aA|bS|c
#
line 3: $
***********************************
S->BA
A->BS|d
B->aA|bS|c
***********************************
Is the grammer you want to anlysis ?
(Type Y for yes and N for no)
y
LL(1) parsing machine @ Math Frog && FLower @
** Please input the grammer you want to process **
** REMIND : Just type a space after entering a symbol **
** press # to end inputing production **
** press $ to end inputing grammer **
***********************************
line 0: ^A
请高手说明一下.
程序下载请到"文件上传栏目"中找下面的文件
●C++写的语法分析器(含应用程序)上传时间:2005-7-6 11:46:39
文件介绍:C++写的语法分析器(含exe文件)
作者:compiler
这是我把compiler的帖子中的程序在DEV-C++中组装起来后形成的
开发环境:DEV-C++
下载地址:http://upload.programfan.com/upfile/200507061141660.rar
问题:
(1)小弟编译后发现遗漏了一个函数isLeftRecursion(),该函数功能是判断输入文法是否是左递归的,没办法,我只好增加了这个函数,默认返回为false
请大家看一下这个函数怎么写
(2)形成exe文件后,运行,输入文法后,程序好象没有给出分析结果
是我输入错误还是程序问题啊?
输入及结果如下:(输入的文法为LL(1)文法)
LL(1) parsing machine @ Math Frog && FLower @
** Please input the grammer you want to process **
** REMIND : Just type a space after entering a symbol **
** press # to end inputing production **
** press $ to end inputing grammer **
***********************************
line 0: S->BA
#
line 1: A->BS|d
#
line 2: B->aA|bS|c
#
line 3: $
***********************************
S->BA
A->BS|d
B->aA|bS|c
***********************************
Is the grammer you want to anlysis ?
(Type Y for yes and N for no)
y
LL(1) parsing machine @ Math Frog && FLower @
** Please input the grammer you want to process **
** REMIND : Just type a space after entering a symbol **
** press # to end inputing production **
** press $ to end inputing grammer **
***********************************
line 0: ^A
请高手说明一下.
程序下载请到"文件上传栏目"中找下面的文件
●C++写的语法分析器(含应用程序)上传时间:2005-7-6 11:46:39
文件介绍:C++写的语法分析器(含exe文件)
作者:compiler
这是我把compiler的帖子中的程序在DEV-C++中组装起来后形成的
开发环境:DEV-C++
下载地址:http://upload.programfan.com/upfile/200507061141660.rar