如何在ANTLR中实现流控制(*执行* if-else,for ... while ....)?

时间:2011-04-29 21:00:28

标签: java antlr

我是ANTLR的初学者,我有它的创作者的2本书,我正在阅读很多博客/论坛帖子,但似乎我现在还没有理解。

我能找到的只是语法代码,以及树语法代码,但我无法理解控制流是如何完成的。

因为我认为我不能把你的问题清楚地告诉你,让我这样说:

你能告诉我传递给解析器的所有必要代码吗

for (i=0; i!=3; i=i+1) {
   if (i==2) print i;
   else print "not 2";
}

将输出:

not 2  
not 2  
2

最好是Java。

编辑:我在code.google.com上发现了一个使用ANTLR的小项目,基于此我理解我的问题有多愚蠢! :)

1 个答案:

答案 0 :(得分:2)

作为扫描器/解析器,Antlr只实现我们称之为编译器的前端。 Antlr的任务是采用自由格式文本并将其转换为一个易于程序(特别是编译器后端)使用的数据结构。

写这个编译器后端(或解释器,或其他)仍然是你的工作,我害怕!