如何在java中实现MCI解析器

时间:2012-04-30 13:50:33

标签: java c++

我想解析一个mci文件格式,用于在java中存储petri网展开前缀,以便我可以用它来生成SAT公式

以下文字描述了用于存储的MCI文件格式 Petri网展开前缀。

下面,CHAR是一个1字节的字符,而UINT4是一个小尾数 (即最低有效字节位于最低地址, 其他字节按升序排列 意义。)4字节无符号整数(英特尔是小端)。

  • 条件总数(UINT4)

  • 事件总数(UINT4)

  • 每个事件(从头到尾): - 原始转换的编号(UINT4)

  • 每个条件的
  • (从头到尾): - 原始地点的数量(UINT4) - 预设事件的编号(UINT4);     如果条件是初始值则为0 - NULL(UINT4)终止的邮政事件编号列表(UINT4)

  • 每个截止事件 - 截止事件的数量(UINT4) - 相应事件的数量(UINT4)或     NULL(UINT4)如果相应的事件是     虚拟初始事件

  • 分隔NULL(UINT4)

  • 每个配置: - NULL(UINT4) - 终止事件数列表。    (这是一些古代模型检查员使用的;    PUNF不创建它只是输出    终止NULL(UINT4)。)

  • 分隔NULL(UINT4)

  • 原网中的总地点数(UINT4)

  • 原始网络中的转换总数(UINT4)

  • 地点/转换名称的最大字符串长度(UINT4) (对于解析器中的内存分配很有用)

  • 原网中的每个地方: - 名称(NULL(CHAR) - 终止字符串)

  • 分隔NULL(UINT4)

  • 原始网络中的每次转换: - 名称(NULL(CHAR) - 终止字符串)

  • 终止NULL(UINT4)。

注意:我已经在C ++中实现了,但我想在java中实现它。为了您的信息。我已经使用了很多工具将它转换为java,但它们都没有完全发挥作用。所以,我将感谢你们的任何帮助。更多,如果需要,我会把代码放在C ++中。

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找DataInputStream

这应该允许您阅读您的个人uint4和字符。