【问题标题】:How to implement an MCI parser in java如何在 Java 中实现 MCI 解析器
【发布时间】:2012-04-30 13:50:32
【问题描述】:

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

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

下面,CHAR是1字节的char,UINT4是little-endian (即最低有效字节位于最低地址, 并且其他字节以递增的顺序跟随 意义。)4 字节无符号整数(Intel 是 little-endian)。

  • 条件总数(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++ 中。

【问题讨论】:

    标签: java c++


    【解决方案1】:

    我认为您正在寻找DataInputStream

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

    【讨论】:

      猜你喜欢
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多