私はCファイルに関する私の論文のために働いています。私はそれを構成するシングルワードを操作するためにCヘッダを分割する必要があります。私はこれらすべての文字で行を分割する必要があります。PythonでCファイルを分割していますか?
- スペースやタブ
- 新ライン
;
または\n
- 単一行コメントと複数行コメント
// /* */
- ポインタ
*
- アレイブラケット
[]
または[dimension]
ですから、例えば、私はこれらのいくつかの行がある場合:
/* This is a
multiline comment.
*/
typedef int rocket;
// This is a single line comment.
typedef double* pi[10];
スプリット機能は、このようなリスト(あるいは他のすべて)を返す必要があります:
["/*","This","is","a","\n","multiline","comment.","\n","*/","\n","\n","typedef","int","rocket",";","\n","\n","//","This","is","a","single","line","comment.","\n","typedef","double","*","pi","[10]",";"]
そして、これはPythonで行われる必要があります!
私はこれを試しましたが、正規表現に関する私の小さな知識は、私が恐ろしい解決策を見つけたことを示唆しています! :)
ありがとう、 ダリオ。
あなたはCの構文パーサーを得ることができます... –
そのコメント、空の行を削除しないのですか? –
@yi_H:それはパーサーによって異なります。私は、デルファイでは、コメントを保持し、適切な場所で、デルファイへの変換の結果をうまく整形するための、シンプルなCパーサー(ほぼ完成していませんが、私の目的には十分です)を書いています。ほとんどのCおよびC++コンパイラに付属するA *プリプロセッサ*はおそらくコメントを削除します。 –