私はソケットサーバーとして動作するプログラム(C/C++で書かれています)を持っています。私はPythonでクライアントを記述したいと思います。 TCPソケットを介して交換されるパケットは、XXX.hファイルで#define ...として定義されたマクロを使用して "自家製"プロトコル(単純)に従います。 私は同等XXX.py XXX.hファイルのみCPPマクロ定義(とコメント)を含んを生成するXXX.hファイルを解析したいと思います例えば:CPPを移植することはPythonに定義されています
//the following commands are used when talking to the server
//A tcp message is: the command(32bit word) followed by the flags (32 bits)
#define CMD_DO_SOMETHING1 1 //this does something
#define CMD_DO_SOMETHING2 2 //that does something else
#define FLAG1 0x0001 //These flags are used as parameter in cmd2
#define FLAG2 0x0002
#define FLAG3 0x0004
#define FLAG4 0x0008
#define TEST_FLAG1(x) (x&FLAG1) //this tests for flag1
は、私のような何かを取得したいと思い:XXX.py:
CMD_DO_SOMETHING1=1
CMD_DO_SOMETHING2=2
FLAG1=1
...
def test_flag1(x):
return(x&flag1)
私は簡単に泳ぎを見てきましたが、私が探していたことを本当に確信していませんでした。手動でXXX.hファイルを解析し、正規表現にマッチするのは間違っています。私の* .pyファイルでCPPを実行するという考え方もそうです。 少なくとも、定数の定義を変換して2回書き直す必要はありません。 もっと良いアイデアですか?
[Convert C++ Header Files To Python]の複製が可能です。(http://stackoverflow.com/questions/374217/convert-c-header-files-to-python) – Marcin