2016-05-23 13 views
2

私は小さな字句解析を書き込もうとしていると私は小さな問題C++字句解析

を持っているが、それは最後に"を持っていないことを以下の文字列

cout << "hello world ; 

注意を考えてみましょう。 は私が最初の"文字列の後にすべてを考慮すると最後まで行方不明終わり"または初期"(それは別の"で終わっていないことを言って)無視して、トークンhelloを分析するprocede、worldがあると言うべきラインの?

ご迷惑をおかけして申し訳ありません。

+0

あなたはどう思いますか? 'hello'、' world'などをトークン化する必要があると思いますか?なぜあなたはそれらを必要としますか? –

+0

もし私が行を解析していたら、他のコンパイラは何をしますか? "終端されていない文字列定数"というエラーを生成します –

+0

意図が '' hello world '; ''でしたか? '' hello world; ";' 、または他の可能性があるならば、あなたは最初の '' 'を処理しなければならず、終了した' ''が出現するまで続くすべてのものを消費しなければならない(この場合、決して遭遇しなかった)。 –

答えて

1

おそらく、最良の方法は、Clangを入手してコードをコンパイルし、エラーとして報告するものを確認することです。 Clangのソースコードでは、可能性のあるすべての字句解析エラーを含む2つの別々のファイルがあるため、字句解析問題やC++標準の何千ページものページを毎回検索する必要はなく、 Clangは標準を実装しています:)