0

Adobe Alchemlyを使用してアクションスクリプトプロジェクトに含まれるCコードにコンパイルしたレクサー/パーサー(ANTLR文法ファイルから生成)があります。

パーサーは、(Actionscript から渡された) 入力文字列から抽象構文ツリー (C) を生成します。さらに処理するために、C AST を actionscript に戻したいと考えています。AST のツリ​​ー構造を actionscript に返すことができる形式に変換するにはどうすればよいですか?

ありがとう、

4

1 に答える 1

1

残念ながら、C データ構造を単に送信することはできません。狂気の昇順で、3 つのオプションがあります。

  1. C 側でデータをシリアル化し、AS3 側で再構成します。
  2. データをオブジェクトにパックして返します。
  3. ポインターとサイズを AS3 に戻し、Alchemy の RAM ByteArray からデータを引き出します。

完全を期すために#3のみを含めます-あらゆる種類の複雑なデータ構造に対して試すのはクレイジーだと思います. コードは壊れやすいでしょう。次のポインタは不格好です。ブレア。

#2 では、動的オブジェクト (AS3_Object 経由) または具体的なオブジェクト (AS3_Get、AS3_New 経由) を使用できます。これもかなり複雑なコードであり、それほど高速ではありません。維持するのが難しい場合があります。

#1 では、シリアライゼーションのタイプが重要です。C コードで構造をバイナリ 'ファイル' にレンダリングし、それを返し、AS3 で ByteArray を介してファイル形式を解析することができます。または、XML にレンダリングして、AS3 の XML クラスに解析させることもできます。これには、(XML がネイティブに実装されているため) 少なくとも逆シリアル化側でかなり高速であるという利点があります。C 側に高速な XML レンダラー (または、エヘム、sprintfs) がある場合、それほど悪くはありません。

于 2011-07-19T17:02:47.823 に答える