私はまだコンピュータサイエンスの形式言語の分野に慣れていないので、私の質問はばかげているかもしれません。私はC++で単純なNMEAパーサーを書いていますが、次のものを選択する必要があります。
私の最初のアイデアは、単純な有限状態マシンを手動で構築することでしたが、それから、より少ない作業で、さらに効率的にそれを行うことができるのではないかと思いました。以前は正規表現を使用していましたが、NMEAの正規表現は非常に長く、一致させるには「長い時間」かかると思います。
次に、パーサジェネレータを使用することを考えました。私はすべて同じ方法を使用していると思います:それらはFSAを生成します。しかし、どちらがより効率的かはわかりません。通常、正規表現の代わりにパーサジェネレータを使用するのはいつですか(パーサジェネレータで正規表現を記述できると思います)。
違いを説明してください、私は理論と経験の両方に興味があります。