2

有人对在 IOS 中编写 SCXML 解析器有任何想法吗?

我浏览了这个http://www.w3.org/TR/scxml/并对 SCXML 有所了解。

我现在需要创建解析架构。

如果有人有想法,请告诉我。

提前致谢。

4

2 回答 2

2

SCXML 就是 XML,所以如果你只是想解析文档,你只需要一个 XML 解析器。本文很好地概述了适用于 iOS 的各种 XML 解析器:http ://www.raywenderlich.com/553/how-to-chose-the-best-xml-parser-for-your-iphone-project

另一方面,如果您需要将 SCXML 文档作为状态机执行,那么您需要一个 SCXML 引擎。如果您使用UIWebView /PhoneGap创建一个 iOS 应用程序,那么您可能会使用SCION作为您的 SCXML 引擎,因为它是由 JavaScript 实现的。免责声明:我是这个图书馆的作者。

于 2012-09-27T18:19:05.220 回答
1

不确定可以在 iOS 上运行的 SCXML 解释器,但 uSCXML 可以为给定 SCXML 文件中隐含的控制流生成 ANSI-C,您只需为数据模型特定表达式提供回调。

$ uscxml-transform -tc -i your.machine.scxml -o your.machine.c

此处给出了通过所有 IRP 测试的生成机器的脚手架。本质上,你只是

  1. #include生成的C 文件
  2. 注册所需的回调
  3. 运行整台机器,直到无事可做。

示例脚手架更加精细,因为它将与所有 uSCXML 的数据模型一起使用,并支持多个调用的 SCXML 解释器。如果只需要一张状态图,上面三个步骤就足够了。生成的源代码已注释,并且在此处提供了一个精简的示例(来自我们的旧分支)(新的主分支尚不支持内联 SCXML)。

我们确实用我们的方法评估了 microstep(T) 的性能,而且速度快得离谱,主要是因为我们预先计算了conflicts(T_1, T_2). 以推荐中附录 D 中的算法作为基准,我们在 IRP 测试中实现了 10-20 倍的加速(现在随时发布)。

如果这种方法看起来合适但给您带来麻烦,请随时在 github 上发布问题,我很乐意添加更多信息。

免责声明:我是 uSCXML 维护者。

于 2016-10-26T13:15:06.440 回答