🌠 .flo InterfaceBytes / v1Lv8

by lighfu

Version 1 (May 3, 2024)

Download (12 downloads)

A flowchart that re-expresses expressions from Automate's Interface type bytes.

⚠ This flow requires the following flowchart data (.flo) for verification. This flowchart only parses the expression, it does not parse the header or block structure.

Automate の Interface型のバイト列から式を再表現するフローチャート。

⚠ このフローは下記の検証用のフローチャートデータ(.flo)が必要になります。このフローチャートはexpression のみの解析で、ヘッダーやブロック構造を解析しません。

Screenshot
https://gyazo.com/d7a1cd292d89946f371a2604222f5301

RoleMap
https://gyazo.com/40878fbebc33a45f6e946dfab386b139

Explain bytes
http://mydevelop.starfree.jp/Automate/Document/automate-bytes.html

Supported Types
・v2: text
・v4: StringInterpolation
・v1: number (double)
・v1: number (hex ... 0x)
・v1: number (bin ... 0b)
・v3: array
・v2: dictionary (and asConvType)
・v5: variable.readName
・v6: All Constructor Support 🎉
・v6: All Function Support 🎉
・v7: LCIDs Support (Var only) 🥳

Supported Operator
・v1: - ( -Obj and Obj - Obj)
・v3: Obj ? Obj : Obj
・v4: Obj[key]
・v5: All Operator Support 🎉

Fix Bug
・v5: 複雑化していた演算子処理を整理
・v7: 変数をゲート再帰処理の対象に変更
・v8: 配列,辞書が空のとき、値代入を無視してゲート解決する。

Todo(☐/☑)
☐ 数値をデコードできるように
☑ ビルトイン定数のサポート
☑ 全てのオペレータをサポート
☑ v6: 全ての関数を解析可能に
☐ type:0xd801 を解析可能に


🟩 How to prepare verification data 🟩
https://gyazo.com/cdcb12076d11c62c3cd88b2250677d0c
① Create a new flow
② Place the Expression block just below the flow begging block
③ Delete the flow begging block
④ Write any expression in the expression block.
⑤ Save the flow from shared to storage.
⑥ Specify the flow saved in the file of the Read text block of this flow

❕Notes❕

・When the length of text is 0, only text: will be displayed.
・Even if it is double, the expression will be hexadecimal.
・A byte sequence of 0xff,0xff is inserted to detect errors.
・To test a variable, define the variable in a separate block and then incorporate it into the expression block. After that, delete the block that defined the variable.
・0xd801 has not yet been analyzed, so it is not supported. It is unknown under what conditions it


🟩 検証用データの準備方法 🟩
https://gyazo.com/cdcb12076d11c62c3cd88b2250677d0c
① 新規フローを作成
② Expression ブロックをflow begging ブロックのすぐ下に配置
③ flow begging ブロックを削除
④ expression ブロックの中の式に任意の式を記述する。
⑤ フローを共有からストレージに保存。
⑥ このフローのRead text ブロックのファイルに保存したフローを指定


❕注意事項❕

・textの長さが0のとき、text: だけになります。
・double でも表現は16進数になります。
・0xff,0xff のバイト列をエラー検知のために挿入しています。
・変数のテストは一旦変数を別のブロックで定義してから、expression ブロックの式に組み込みます。その後、変数を定義したブロックは削除してください。
・0xd801 の解析がまだなのでサポートしていません。どの条件下で出現するのかが不明。


=====
Interface 型で悩んでいる人向けのフローチャートになっています。Interface 型が分かれば、あとはブロック(380種以上)全てのデータ数と、分岐数を把握することによって完全に .flo を解析できます。(;゜゜)

Java で実装している途中でしたがやる気が無くなったので冬眠期間に入ることにします。

This is a flowchart for people who are having trouble with the Interface type. If you understand the Interface type, you can analyze the .flo completely by understanding the number of data in all blocks (more than 380 types) and the number of branches. (;゜゜)

I ​​was in the middle of implementing it in Java, but I lost motivation, so I'm going to go into hibernation.

3.0 average rating from 2 reviews

5 stars
0
4 stars
0
3 stars
2
2 stars
0
1 star
0
Reports
0

Rate and review within the app in the Community section.