2017-12-20 18 views
0

私はしばらくの間、NodeJSでlintersを使用していて、のcpplintをC++のArduinoライブラリで使用し始めました。セミコロンがないなどのいくつかの基本を取り上げているようには見えません(ただし、間違った行に中カッコが含まれています)。インデントのためのスペースとタブ、あるいはインプリメンテーションファイルのひどくインデントされたコードを区別しているようにも見えません。cpplintがセミコロンを見つけられないのはなぜですか?

NodeJSの背景から来て、cpplintはたくさんのチェックが欠けているようですが、私は完全にそのポイントを逃していますか?

+2

おそらく、コンパイラがそれらを見つけられないからです。 – StoryTeller

+0

ありがとう、私はこれを実現するが、私はリンターは、それが見つかる前にコンパイルプロセスを経なければならないのではなく、これを拾うことを望んでいた。私はちょうどこれがC++を使用する際の苦痛の一部であると仮定すべきでしょうか? –

+0

C++の解析は* hard *です。 *大部分の構文要素は2倍または3倍の義務を負うので、不正なプログラムを与えられたときの意味を特定しようとすると、AIレベルのタスクとなります – Caleth

答えて

1

cpplintは、Google C++ Style Guideに基づくコードスタイルのみをチェックします。限り、私は知っている、それは構文エラーをチェックしません。 cpplint.pyの実装を見ると、セミコロンがないことについて正規表現の規則が見つかりません。インデントについては、空白の幅がタブではなく、偶数である限り、cpplintがそれを渡します。

+0

ありがとうございます。問題は、空白が不揃いであっても、私は1つの行のタブの負荷でひっくり返し、これを拾い上げることができませんでした。これは私が欠けているいくつかの設定があるかどうかわからない理由です(確かにGoogleは一貫したインデントを必要とします!!)。 –

+0

@MarkTyers - あなたは実際に真実より多くのGoogleスタイルガイドを推測しています。 TirtadwipaがリンクしているGoogleのスタイルガイドをご覧ください。これは、行末の余分な空白については何も言いません。 – Peter

関連する問題