Boost :: Spirit Grammar للمخطط غير المصقول
-
24-09-2019 - |
سؤال
لدي قسم من مخطط لنموذج أحتاج إلى تحليله. دعنا نقول أنه يبدو كما يلي.
{
type = "Standard";
hostname="x.y.z";
port="123";
}
الخصائص هي:
- قد تظهر العناصر غير مرتبة.
- يجب أن تظهر جميع العناصر التي تشكل جزءًا من المخطط ، ولا يوجد آخر.
- جميع سمات العناصر توليفها تذهب إلى البنية.
- (اختياري) قد يعتمد المخطط في المستقبل على حقل النوع - أي حقول مختلفة تعتمد على النوع - لكنني لست قلقًا بشأن هذا في الوقت الحالي.
المحلول
وفقا لمنتديات الروح ، ما يلي هو الجواب.
قد ترغب في إلقاء نظرة على محلل التقليب:
a ^ b ^ c
الذي يطابق A أو B أو C (أو مزيج منها) في أي تسلسل.
إذا كان الهدف هو التحليل في البنية ، من أفضل طريقة لاختبار الطقس تم تهيئة جميع الأعضاء الأساسيين ، يجب أن يتم لف أعضاء الهيكل معهم boost::optional<>
يمكن بعد ذلك اختبار وجود السمة بسهولة بعد وقت التشغيل.
لا تنتمي إلى StackOverflow