سؤال

لقد اكتشفت كيفية استخدام الروح - أي ، لقد كتبت قواعد نحوية معتدلة. أنا دائما أتبع نهج زراعة البرنامج - نظام فرعي واحد في وقت واحد. لقد كتبت هياكل البيانات لنموذج معقد يحتوي على 4 أنواع على أعلى مستوى.

أود استخدام قواعد اللغة تتألف من نهج القواعد لتحليل أنواع المستوى الأعلى نوعًا واحدًا في كل مرة - أي أريد أن أكتب 4 قواعد مع قواعد عالية المستوى. إذا كان هذا ممكنًا (وهو ما بدأت أشك في) ، فهل يمكن لشخص ما نشر مقتطف أو إشارة إلى مشروع يقوم بذلك.

لا يبدو أحد القواعد النحوية ذات المستوى الأعلى مع أكثر من 50 (أكثر من ذلك بكثير) (لمعالجة الأخطاء المناسبة) مثل المرح (رمز TMP متقلبة / بطيئة في التجميع ، ويوفر رسائل خطأ عديمة الفائدة).

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

المحلول

مبسط من برنامج فعلي ، تشي يجب أن تعمل كما هي كَرما.

template<class Iter>
struct subgrammar_1
: karma::grammar<Iter, ...>
{
    ...
}

template<class Iter>
struct top_level_grammar
: karma::grammar<Iter, ...>
{
    top_level_grammar() : top_level_grammar::base_type(start)
    {
        start %= r1 | r2;
    }
    karma::rule<Iter, ...> r1;
    subgrammar_1<Iter> r2;
    ...
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top