هل يمكن استخدام Boost Spirit لتحليل بيانات دفق البايت؟

StackOverflow https://stackoverflow.com/questions/285200

سؤال

هل يمكن استخدام Spirit (جزء من مكتبة Boost C++) لتحليل البيانات الثنائية القادمة من الدفق؟على سبيل المثال، هل يمكن استخدامه لتحليل البيانات القادمة من مأخذ التوصيل إلى بنيات، بايتات، وعلامات بت فردية؟شكرًا!

هل كانت مفيدة؟

المحلول

يسمح Boost Spirit بتعريف المحلل اللغوي باستخدام نموذج باكوس-نور الممتد (EBNF) بناء الجملة مع قالب البرمجة الفوقية.إنه مرن للغاية ويستخدم فئات مجردة في جميع مراحل عملية التحليل التي يمكن تخصيصها.من أجل معالجة تدفق البيانات الثنائية، ستحتاج إلى تنفيذ فئات الماسح الضوئي المخصصة نظرًا لأن الأنواع الافتراضية مصممة لإدخال النص.يمكنك قراءة المزيد في الماسح الضوئي والتحليل قسم من دليل مستخدم الروح.

في رأيي المتواضع، من الأفضل التعامل مع تدفقات البيانات الثنائية باستخدام كود التسلسل المدلفن يدويًا.الروح موجهة أكثر نحو القواعد النحوية الجيدة مثل لغات الترميز أو البرمجة النصية.على سبيل المثال، بناء الجملة الكامل لوا يتم توفيره في EBNF.لذا، قد يكون من المنطقي استخدام Spirit لبناء محلل مخصص.من ناحية أخرى، فإن ارتباط البيانات التسلسلية الخاصة مع بايتات المزامنة ورسائل أقواس CRC سيتطلب الكثير من العمل فقط لتحديد EBNF إذا كان قواعد خالية من السياق حتى موجود لذلك.

إضافة

يتضمن أحدث إصدار من Boost Spirit وظيفة للتعامل مع البيانات الثنائية.

نصائح أخرى

يحتوي Spirit2، الذي تم إصداره للتو، على تسهيلات لتحليل الملفات الثنائية. ألق نظرة على هذا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top