关于在C ++中编写酷语言编译器的问题

时间:2012-04-29 11:55:13

标签: c++ compiler-construction

大约一周前,我在coursera.org开设了一个在线课程“编译器”。今天我得到了一些开始的代码。

我希望你能帮我解答一些问题。

%{ /* some code */ %} =>这是什么,我一直认为%是模块运算符

[ \t]+
[0-9]+ { return(NUM); } =>我可以理解[0-9]+部分代码,但我不明白[\t]+在这里做了什么。

2 个答案:

答案 0 :(得分:3)

这看起来像Lex,而不是C ++

%{ %}指定将逐字复制到输出源中的C / C ++代码。

[ \t]+忽略所有空格和标签(\t是标签页)。

答案 1 :(得分:0)

首先,如果提供了编写编译器的语言的细节,那就太棒了。

从提供的任何信息来看,最好的猜测是[\ t]用于识别标签,这些标签使用缩进来识别单独的代码块。