デコード / エンコード処理
処理ロジック
umsCodeGenerator は、2種類のロジックのソースコードを生成することができます。 「スレッド処理を行うロジック」と、「スレッド処理を行わないロジック」です。 2つのロジックの特徴は、以下の通りです。
処理ロジック | 制御構造を持たないデータ | 制御構造を持つデータ |
---|---|---|
スレッド処理を行う | 処理可能 | 処理可能 |
スレッド処理を行わない | 処理可能 | 処理不可能 |
設計メモ:制御構造の取り扱い
設計メモ:制御構造の処理(Java版)
設計メモ:(C言語版)
設計メモ:case ラベルの命名法
設計メモ:例外に関わる辺りの生成コードイメージ
データモデル
umsCodeGenerator が扱うデータは、以下に分類されます。
データ種別 | 要素 |
---|---|
dat | bit、byte、data、value のみで構成 |
list | list + dat データ |
loop | oneOrMore、zeroOrMore、optional + dat データ |
interleave | interleave + dat データ |
umsCodeGenerator が生成するソースコードでは、dat、list、loop、interleave を、 thread クラスの 変数が束ねる形で状態を保持しています。
[参照ファイル]
src/clng/umsDat.h
src/clng/umsDat.c
src/clng/umsList.h
src/clng/umsList.c
src/clng/umsLoop.h
src/clng/umsLoop.c
src/clng/umsInterleave.h
src/clng/umsInterleave.c
src/clng/umsThread.h
src/clng/umsThread.c
src/java/jp/jaxa/isas/ums/runtime/UMSDat.java
src/java/jp/jaxa/isas/ums/runtime/UMSList.java
src/java/jp/jaxa/isas/ums/runtime/UMSLoop.java
src/java/jp/jaxa/isas/ums/runtime/UMSInterleave.java
src/java/jp/jaxa/isas/ums/runtime/UMSThread.java
設計メモ:データモデルの再設計
設計メモ:クラス図
要素ごとの処理
bit / byte
設計メモ:push, pop の template から呼び出し
設計メモ:長さのチェック及び method 2 における epos の使用法の変更
data / value
設計メモ:data / value 要素の処理
設計メモ:validate -> restrict -> sync -> 代入の方式
param
設計メモ:制約の実装
list
設計メモ:list の処理
設計メモ:親子関係を見る必要があるタグ処理(template と foreach の使い分け)
choice
設計メモ:choice の処理
設計メモ:親子関係を見る必要があるタグ処理(template と foreach の使い分け)
optional
設計メモ:optional の処理
oneOrMore
設計メモ:oneOrMore の処理
zeroOrMore
設計メモ:zeroOrMore の処理
interleave
設計メモ:interleave の意味と処理
設計メモ:interleave の処理
設計メモ(旧版)
- mapping function 2005062651:mapping function の引数名の仕様変更 (固定)
- 2005062451: 例と本体の切り分け
- 2005062452: tableTools と umsCodeGenerator 並存
- 2005080301: umsCodeGenerator, tableTools の統合
- 2005072953: もろもろ作業メモ (txt:line タグ、encodingLibrary の新インターフェース。param タグ の設計メモを含む)
- 2005070251: XSL を XSL で XSL する方法
- 2006062201: pre 処理による XSL 変換