2012-04-29 10 views
0

約1週間前に私はcoursera.orgでオンラインコース "コンパイラ"を開始しました。今日私は始めるためのいくつかのコードがあります。C言語のクールな言語のためのコンパイラの作成に関する質問

私はあなたが私にいくつかの質問への回答を手伝ってくれることを願っていました。

%{ /* some code */ %} =>これは何か、私はいつも%が

[ \t]+
[0-9]+ { return(NUM); }モジュール演算子であることをthinked =>私は、コードの[0-9]+一部を理解することができますが、私は[\t]+がここでやっていることを理解しません。

答えて

3

これがないC++

%{ %}は、出力ソースにそのままコピーされますC/C++コードを指定し、レックスのように見えます。

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

+0

ありがとうございました。あなたはこれがLexであると正確です。 – depecheSoul

0

最初に、コンパイラが記述されている言語の詳細が提供されていれば、それは素晴らしいことでした。

提供されている情報から、[\ t]はインデントを使用して別のコードブロックを識別するPythonのようなタブを識別するためのものです。

関連する問題