0

我正在为包含 for 循环预处理器指令的语言编写 Flex/Bison 解析器,该指令应该复制循环内容。例子:

for (i=0; i<2; i++)
    record$i = value$i;
endfor

我的预处理器应该生成以下输出

record0 = value0;
record1 = value1;

我需要支持嵌套循环。任何人都可以提出一个想法如何使用 Flex/Bison 来实现它。

多谢!

4

1 回答 1

1

Flex 和 bison 是解析工具。因此,您可以使用它们将您的语言解析为某种内部形式,然后您可以评估该内部形式以产生您想要的输出。这实际上是两个完全不同的任务,仅与您选择使用的内部形式相关(可以是任何东西——最好的取决于您的语言是什么,以及您希望预处理器用它做什么) .

总体而言,您的问题是如此广泛,以至于它无法回答任何更详细的答案,而不仅仅是“使用 flex 和 bison 来解析您的语言,并使用某种简单的解释器来评估结果”。至于你是如何做到这一点的,那大约是 30 或 40 个不同的问题。

于 2012-08-01T22:41:00.063 回答