後押し::精神文法から文法を構成します
-
24-09-2019 - |
質問
私は精神を使用する方法を考え出した - つまり、私は適度に複雑な文法を書かれています。一度に1つのサブシステム - 私はいつもプログラムを成長させるアプローチを取ります。私は、最高レベルの4種類があり、複雑なモデルのデータ構造を書きました。
私は文法構成を使用したいですルールは一度にトップレベルタイプ1種類を解析するにアプローチから - つまり、私は1つのトップレベルの文法と4つの文法を書きたいです。これは(私が疑問に始めていた)可能な場合、誰かがスニペットまたはこれを行いプロジェクトへの参照を投稿してください可能性があります。
(適切なエラー処理のための)50+(可能なAロット以上)のルールと1つのトップレベルの文法(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;
...
}
所属していません StackOverflow