我正在尝试制定一个可靠的策略来解析具有嵌入式完整性符号的二进制数据。以下是EBNF形式的构造规则:
Log ::= {Data};
Data ::= Key,DataList;
DataList ::= {Structure};
问题是 Key 可以出现在 DataList 中 - 它不是转义码。我想不出比蛮力方法更好的算法了:
-Index all Key locations
-foreach key, start trying to parse Structure
- if structure parse fails - try next key location // possible to lose good data
有谁知道做这样的事情的好策略?如果记录损坏,我正在尝试将数据丢失降至最低。
欢迎任何见解!