0

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

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

下面,CHAR 是 1 字节的 char,UINT4 是 little-endian(即最低有效字节在最低地址,其他字节按照重要性递增顺序。) 4 字节 unsigned int(Intel 很少-字节序)。

  • 条件总数 (UINT4)

  • 事件总数 (UINT4)

  • 对于每个事件(从第一个到最后一个):--原始转换的编号(UINT4)

  • 对于每个条件(从第一个到最后一个): -- 原始位置的编号(UINT4) -- 预设事件的编号(UINT4);如果条件是初始的,则为 0 -- NULL(UINT4) 终止的 postset 事件编号列表 (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++ 中。

4

1 回答 1

0

我认为您正在寻找DataInputStream

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

于 2012-04-30T14:14:29.350 回答