0

約 1 週間前、coursera.org でオンライン コース「コンパイラ」を開始しました。今日、私は始めるためのコードをいくつか手に入れました。

いくつかの質問への回答を得るために、あなたが私を助けてくれることを願っていました.

%{ /* some code */ %} =>これは何ですか、私はいつも%がモジュール演算子だと思っていました

[ \t]+
[0-9]+ { return(NUM); }=>[0-9]+コー​​ドの一部は理解できますが、ここで何[\t]+をしているのか理解できません。

4

2 に答える 2

3

これは C++ ではなく、Lex のように見えます

%{ %}出力ソースに逐語的にコピーされる C/C++ コードを指定します。

[ \t]+すべての空白とタブ (\tはタブ) を無視します。

于 2012-04-29T11:58:35.500 に答える
0

まず、コンパイラが書かれている言語の詳細が提供されていればよかったです。

提供された情報から、ここでの最良の推測は、コードの個別のブロックを識別するためにインデントを使用する Python のような言語の場合に、[\t] がタブを識別するためのものであるということです。

于 2012-04-29T12:00:34.467 に答える