1

这是上下文:我有一个文件(或流),我想处理它的标题,停止,然后以不同的方式处理其余数据。也就是说,假设我有一个像BEGIN GOOD GOOD GOOD GOOD GOOD DONE JUNK JUNK JUNK JUNK .... 第一部分 ( BEGIN GOOD+ DONE) 符合我的语法,我一看到就想停下来DONE

AFAIK、YACC 和朋友们想继续消费令牌直到没有更多,所以我必须编写更多的语法来匹配所有JUNK. 有没有解决的办法?

我正在使用 PLY(Python 的 Lex 和 Yacc 实现),但我对这里的一般答案持开放态度。

4

1 回答 1

1

在正常的 yacc 中,您可以在操作中使用 yacc 宏YYACCEPT来立即返回成功的解析,而无需再读取任何标记。但是,我不知道 PLY 是否支持这一点。

于 2011-11-17T19:39:53.293 回答