列挙型で満たされたIDLファイルがたくさんあります。IDLファイルを解析し、列挙型を抽出し、これらに基づいてネイティブJava列挙型を作成する方法が必要です(consts、unions、structsなどのIDL内の他の宣言も無視します)。
どこから始めればいいのかわからない。この目的のために設計された優れたLinuxツールはありますか?正規表現が必要になると思いますか?
私が何を意味するかを説明するために、ここにcommon.idlの例があります:
#ifndef __common_idl__
#define __common_idl__
module common_idl {
const short MAX_UNITS = 99;
const short MAX_SIZE = 15;
enum Bearing_Type {
North_Bearing,
South_Bearing,
No_Bearing
};
enum Bounds_Type {
Empty,
Full,
Above,
Between,
Below
};
enum Identity_Type {
Pending,
Unknown,
Assumed_Friend,
Friend
};
enum Status_Type {
No_Status,
To_Status,
To_Established,
From_Established
};
enum Emergency_Type {
Reported,
Confirmed,
None
};
struct Console_Marker {
boolean Marked;
};
typedef unsigned short Index_Type;
typedef long TQ_Type;
typedef unsigned short Count_Type;
typedef unsigned long Number_Of_Type;
typedef unsigned short Special_Index_Type;
typedef string<2> Code_Type;
};
#endif
次のようなコマンドを実行したいのですが。
converter common.idl -package com.myproject -outputDir src
そして、outはこれらのソースJavaファイルを列挙型で吐き出します:
src / com / myproject / Bearing_Type.java
package com.myproject;
public enum Bearing_Type {
North_Bearing,
South_Bearing,
No_Bearing
}
src / com / myproject / Bounds_Type.java
package com.myproject;
public enum Bounds_Type {
Empty,
Full,
Above,
Between,
Below
}
src / com / myproject / Emergency_Type.java
package com.myproject;
public enum Emergency_Type {
Reported,
Confirmed,
None
}
src / com / myproject / Identity_Type.java
package com.myproject;
public enum Identity_Type {
Pending,
Unknown,
Assumed_Friend,
Friend
}
src / com / myproject / Status_Type.java
package com.myproject;
public enum Status_Type {
No_Status,
To_Status,
To_Established,
From_Established
}
これは実行可能ですか?