Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在为包含 for 循环预处理器指令的语言编写 Flex/Bison 解析器,该指令应该复制循环内容。例子:
for (i=0; i<2; i++) record$i = value$i; endfor
我的预处理器应该生成以下输出
record0 = value0; record1 = value1;
我需要支持嵌套循环。任何人都可以提出一个想法如何使用 Flex/Bison 来实现它。
多谢!
Flex 和 bison 是解析工具。因此,您可以使用它们将您的语言解析为某种内部形式,然后您可以评估该内部形式以产生您想要的输出。这实际上是两个完全不同的任务,仅与您选择使用的内部形式相关(可以是任何东西——最好的取决于您的语言是什么,以及您希望预处理器用它做什么) .
总体而言,您的问题是如此广泛,以至于它无法回答任何更详细的答案,而不仅仅是“使用 flex 和 bison 来解析您的语言,并使用某种简单的解释器来评估结果”。至于你是如何做到这一点的,那大约是 30 或 40 个不同的问题。