Bison语法/解析器的多个起点

问题描述 投票:0回答:1

[好,所以我有一个完整的(正在运行的)Bison语法。

这是我希望能够设置另一个起点(%start)。

这怎么做,而不必创建单独的语法/解析器?

c parsing bison yacc flex-lexer
1个回答
0
投票

我将尝试将一个版本的yacc放在一起。有一个复杂的现象使它看起来不那么琐碎:组成“结束”符号的问题。这种方法最有用的地方是在中游过程中处理块(例如,Knuth的[c] Web的TeX处理器可以做到这一点)。沿着这些思路,可以使用此示例的另一个示例是为预处理层和语言层提供统一的解析器,以及将各个宏本身作为完整的解析单元进行处理(以及能够说明哪些宏体是常见的语法单元,例如“表达”或“陈述”,而并非如此。]

在那些类型的应用程序中,没有自然的“结束”符号来标记要分析的段的边界。通常,LR方法要求这样做,以便识别何时采取“接受”动作。否则,您将不得不接受-减少(甚至接受转移)冲突!

© www.soinside.com 2019 - 2024. All rights reserved.