貪欲アルゴリズムのC言語の字句解析

貪欲アルゴリズムのC言語の字句解析

私たちが書くときa---b、我々は検討すべき時にC言語コンパイラのこの文は、この文を分析する方法です。

この問題の解決策を解決するために、C言語では、非常に単純なルールにまとめることができ、各記号は、できるだけ多くの文字が含まれている必要があります。すなわち、コンパイラプログラムの方法は、シンボルに分解される:左から右への文字が一つのシンボルで構成されてもよい場合に文字が、文字によるリード文字を読み取り、その後、次の文字は、決意に読み込ま文字列は2つの文字を読まれたかどうかは、シンボルの一部であってもよく、可能な場合は、文字列が読み込まれるまで、決意が繰り返され、次の文字が読み込まれるまで継続することはもはや形成する必要がないかもしれません象徴的な意味。時々 、「貪欲」、または、より口語的なポイントと呼ばれる処理方式は、カットオフに入力ストリーム(コンパイラ)場合」、次のように「口法」、これのカーニハンとリッチー式であると呼ばれます文字がシンボルに分解されている前に、次の数が最も長い文字列の次の文字からのシンボルの可能成分が含まれます。」

---「Cトラップと落とし穴、」8ページ目

文字列定数に加えて、中間シンボルが空白(スペース、タブ、改行)が埋め込まれていないことに留意されたいです。例えば、==単一のシンボルであり、= =二つのシンボルであり、

この場合は、スペースで区別することができ、複雑なコードポイントを書いてはいけません。それはすることができますa---bで書かれたa-- -b利便性のある程度にもたらし、どこで、発生する可能性のあるエラーを避けるためのスペースの真ん中意味が異なっています。a---ba- --b

私は次のシンボルを決定し、読むための最初の文字だった、とあれば同様に、私はすぐに*、その後、どのような状況に関係なくは、これら2つの文字が/ *コメントを表す記号として扱われます開始します。

コード注釈の意味は、次の文は、p点xの値で除算することを意図し、次いで商yを割り当て表示され

y = x/*p /* p指向除数*/

実際には、/ *コンパイラは、コメントの始まりとして理解され、コンパイラは* /が表示されるまで文字を読みしていきます。言い換えれば、xの値に直接このステートメントをyに割り当てられている、pは、後に表示され考慮されません。上記の文は次のようにリライトされます。
y = x / *p /* p指向除数*/;
以上明確に、書き込み:
y=x/(*p) /*p指向除数*/;
これはコメントで表現意図によって得られた文の実用的な効果です。

おすすめ

転載: www.cnblogs.com/cuianbing/p/11597436.html
おすすめ