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アプリを作成する場合、JavaScriptが実装されているため、 SCIONをSCXMLエンジンとして使用できる可能性があります。免責事項:私はこのライブラリの作者です。

于 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 インタープリターをサポートするため、やや精巧です。ステート チャートが 1 つだけ必要な場合は、上記の 3 つの手順で十分です。生成されたソース コードにはコメントが付けられており、(従来のブランチからの) 簡略化された例はこちらから入手できます(新しいマスター ブランチではインライン SCXML はまだサポートされていません)。

私たちのアプローチで microstep(T) のパフォーマンスを評価しましたが、主に を事前計算しているため、途方もなく高速conflicts(T_1, T_2)です。推奨事項の付録 D のアルゴリズムをベースラインとして使用すると、IRP テストで 10 ~ 20 倍の高速化を達成しました (いずれ公開される予定です)。

このアプローチが適しているように見えても問題が発生する場合は、気軽に github に問題を投稿してください。喜んでさらに情報を追加します。

免責事項:私は uSCXML のメンテナーです。

于 2016-10-26T13:15:06.440 に答える