Назови меня двоичным парсером. Парсер для двоичных данных [закрыто]

Итак, я получаю эти данные. Из сетевого сокета или из файла. Я собираю код, который будет интерпретировать данные. Прочитайте несколько байтов, проверьте некоторые флаги, и некоторые байты показывают, сколько данных следует. Прочтите эти данные, промойте, повторите.

Эта задача очень напоминает мне синтаксический анализ исходного кода. Я удобен с lex / yacc и antlr, но они не справляются с этой задачей. Вы не можете указывать биты и необработанные байты как токены (ну, может быть, вы могли бы, но я не знаю, как), и вы не можете уговорить их «прочитать два байта, превратить их в 16-разрядное целое число без знака, вызвать его»n, а затем прочитатьn байт. ".

С другой стороны, когда спецификация протокола / формата данных определяется систематически (не все из них), должен существовать систематический способ считывания данных, отформатированных в соответствии с протоколом. Правильно?

Должен быть инструмент, который делает это.

Ответы на вопрос(7)

Ваш ответ на вопрос