循环展开flex / bison

时间:2012-08-01 18:17:19

标签: loops for-loop bison lex

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

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

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

record0 = value0;
record1 = value1;

我需要支持嵌套循环。 任何人都可以建议如何使用Flex / Bison实现这一点。

很多!

1 个答案:

答案 0 :(得分:1)

Flex和Bison是解析工具。因此,您可以使用它们将语言解析为某种内部形式,然后您可以评估该内部表单以生成所需的输出。这些是两个完全不同的任务,仅与您选择使用的内部表单相关(可能几乎任何事情 - 最好的取决于您的语言是什么,以及您希望预处理器使用它做什么)

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