由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - yacc/bison的调试和分析工具?
相关主题
谁知道如何调试yacc程序?问一个在eclipse 上调试C++ 的问题
作paser,lexer就用antlr把,别折腾yacc,bison了 累VS下有Lib(C++)如何调试?
多次调用yyarse()的buffer flush问题。std::size_t的麻烦
请教怎样尽快看明白同事的程序?Jeff Dean新花样,deep learning做index
调试版链接时间特别长revision control
c++没有系统学过,谁给推荐本书吧?请问有那些好工具可以调试html和js
这些语言开发大型软件的可能性C源程序能不能知道gcc的优化选项呢?
哪种c++IDE能做类似于Matlab那样调试?gbd调试时的一个简单问题 (转载)
相关话题的讨论汇总
话题: yacc话题: yytext话题: c++话题: bison话题: yydebug
进入Programming版参与讨论
1 (共1页)
g*********s
发帖数: 1782
1
有个lex/yacc写的文本分析器,现在需要更改一个词法单位string的实现,基本想法是
把返回值从strdup(yytext)改成yytext,用shallow copy来减少malloc/free操作频率
,提高运行效率。
但是更改这个词法单位后引发了链锁反应,所有涉及这个词法单位的yacc状态都要相应
地修改。手工跟踪了一下,非常多。一个一个改,容易错也容易漏。
有没有什么yacc/bison的调试和分析工具,能静态分析,告知有哪些状态需要修改,这
样可以按图索骥?
另外定义了YYDEBUG,也定义了int yydebug=1,调试时报告的状态转换和都是编码,60
,51等,报告的token只有名称,比如string,没有yytext的具体内容。能直接打出状
态名称,还有当前处理的token内容吗?
更进一步,有比lex/yacc更快的C++ based parser工具吗?ANTLR的C++实现似乎还在进
行中。
谢谢指教!
t****t
发帖数: 6806
2
not sure about automatic tracing. and i think the yacc itself doesn't have
the solution. you can use valgrind on the generated program, though.
about yydebug, refer to "info bison", section "Tracing". there's an example
there.

60

【在 g*********s 的大作中提到】
: 有个lex/yacc写的文本分析器,现在需要更改一个词法单位string的实现,基本想法是
: 把返回值从strdup(yytext)改成yytext,用shallow copy来减少malloc/free操作频率
: ,提高运行效率。
: 但是更改这个词法单位后引发了链锁反应,所有涉及这个词法单位的yacc状态都要相应
: 地修改。手工跟踪了一下,非常多。一个一个改,容易错也容易漏。
: 有没有什么yacc/bison的调试和分析工具,能静态分析,告知有哪些状态需要修改,这
: 样可以按图索骥?
: 另外定义了YYDEBUG,也定义了int yydebug=1,调试时报告的状态转换和都是编码,60
: ,51等,报告的token只有名称,比如string,没有yytext的具体内容。能直接打出状
: 态名称,还有当前处理的token内容吗?

c*****t
发帖数: 1879
3
yytext can change when doing input. Thus, you would have to make a copy
of the current token string with strdup.
yacc++ is a well known commercial parser generator for C++. Just google
it.

60

【在 g*********s 的大作中提到】
: 有个lex/yacc写的文本分析器,现在需要更改一个词法单位string的实现,基本想法是
: 把返回值从strdup(yytext)改成yytext,用shallow copy来减少malloc/free操作频率
: ,提高运行效率。
: 但是更改这个词法单位后引发了链锁反应,所有涉及这个词法单位的yacc状态都要相应
: 地修改。手工跟踪了一下,非常多。一个一个改,容易错也容易漏。
: 有没有什么yacc/bison的调试和分析工具,能静态分析,告知有哪些状态需要修改,这
: 样可以按图索骥?
: 另外定义了YYDEBUG,也定义了int yydebug=1,调试时报告的状态转换和都是编码,60
: ,51等,报告的token只有名称,比如string,没有yytext的具体内容。能直接打出状
: 态名称,还有当前处理的token内容吗?

w***g
发帖数: 5958
4
I think boost has a parser library.

60

【在 g*********s 的大作中提到】
: 有个lex/yacc写的文本分析器,现在需要更改一个词法单位string的实现,基本想法是
: 把返回值从strdup(yytext)改成yytext,用shallow copy来减少malloc/free操作频率
: ,提高运行效率。
: 但是更改这个词法单位后引发了链锁反应,所有涉及这个词法单位的yacc状态都要相应
: 地修改。手工跟踪了一下,非常多。一个一个改,容易错也容易漏。
: 有没有什么yacc/bison的调试和分析工具,能静态分析,告知有哪些状态需要修改,这
: 样可以按图索骥?
: 另外定义了YYDEBUG,也定义了int yydebug=1,调试时报告的状态转换和都是编码,60
: ,51等,报告的token只有名称,比如string,没有yytext的具体内容。能直接打出状
: 态名称,还有当前处理的token内容吗?

1 (共1页)
进入Programming版参与讨论
相关主题
gbd调试时的一个简单问题 (转载)调试版链接时间特别长
有没有能在单台机子上调试mpi程序的simulator? (转载)c++没有系统学过,谁给推荐本书吧?
常用的调试网络的命令,除了ping和traceroute,还有什么? (转载)这些语言开发大型软件的可能性
难道make没有调试器吗?哪种c++IDE能做类似于Matlab那样调试?
谁知道如何调试yacc程序?问一个在eclipse 上调试C++ 的问题
作paser,lexer就用antlr把,别折腾yacc,bison了 累VS下有Lib(C++)如何调试?
多次调用yyarse()的buffer flush问题。std::size_t的麻烦
请教怎样尽快看明白同事的程序?Jeff Dean新花样,deep learning做index
相关话题的讨论汇总
话题: yacc话题: yytext话题: c++话题: bison话题: yydebug