文法パーサーについては、賛否両論があるBisonで「遊んで」いました。
先週、SqLiteサイトでエンジンが別の文法パーサーであることに気付きました: Lemon
薄いドキュメントを読んだ後は素晴らしいですね。
このパーサーについてフィードバックはありますか?
Google やウィキペディアで適切な情報を実際に見ることができない (ほんの数例、同じチュートリアル) あまり人気がないようです。(スタック オーバーフローにはレモンタグはありません [編集: 現在 :P があります])
ファームウェア プロジェクトで Lemon を使用する理由は次のとおりです。
確かにレモンは特効薬ではなく、適用範囲が限られています。欠点の中で:
選択する前に、長所と短所を比較検討してください。私はやりました;-)
面白い発見!私は実際にそれを使用したことがないので、解説はドキュメントを読むことに基づいています。
字句解析が構文解析とは別に行われるように再設計することには、メリットがあるようです。特に、複数またはネストされたソースファイルの処理などの操作を簡素化する可能性があります。Lexベースのyywrap()
メカニズムは理想的とは言えません。すべてのグローバル変数を回避し、慎重なメモリ割り当てと割り当て解除の制御を優先する必要があります(アロケータと割り当て解除の選択が非常に役立ちます-少なくとも、メモリ割り当てが常に問題となる私が働いている環境では) 。
ルールがどのように編成され、端末がどのように識別されるかを再考することは良い考えです。
全体として、それはバイソンのよく考えられた再設計のように見えます。
参照されているWebページによるとパブリックドメインです。