私がプログラミングしたいと思った最初のことの1つは、マルチプレイヤーテキストゲームを作成することでした。少なくともその時点で、スマートパーサーを作成するのがいかに複雑であるかを理解したとき、私はその概念から離れて怖がっていました。
それで今、私はそれについて考えることに戻り、私はこの主題について多くの研究をしようとしました。それは私が思っているよりもはるかに複雑であるように思われ、字句解析、トークン化、構文解析などの用語に出くわしましたが、後者だけが以前に知っていました。字句解析の分野が私が探していたものだと思いました。
したがって、私が読んだ非常に困難でエラーが発生しやすい独自のレクサーとパーサーを作成しようとする代わりに、ほとんどの人が離れるように指示します。私にとってすべての重労働であり、私は自分が望む文法に集中することができます。また、そういうことをやろうとしている人は、単に使うべきだと言う人もたくさんいますInform
。
確かに、Informはかっこいいと思いますが、C#が私の選択言語であり、Informが提供するものを超えて自由に使えることが好きです。特定の最終結果よりも、マルチプレイヤーテキストゲームのすべてのコンポーネントとフレームワークを作成することに興味があるので、標準のプログラミング言語を使用するというアイデアが一番好きです。
私はしばらくの間、C#用の優れたレクサー/パーサジェネレーターを見つけようとしてきましたが、人々がコメントするという点で提供されているように見えるすべてに本当に満足しているわけではありません。
C#のantlrは未開発で、ほとんどが後付けのようです。私はGPLEXとGPPGを理解しようとしましたが、多くのドキュメントを読み、一般的な字句解析について多くを読み込もうとしているにもかかわらず、現時点ではあまりにも混乱しています。
字句解析のプロセス全体について頭の中にはたくさんの概念がありますが、字句解析器とパーサーに直面したとき、これらが実際のコードにどのようにメッシュ化されるのか本当にわかりません。
名詞句と動詞句を使った文法のような単純な英語を作成し、ゲームの開発と拡張時にデータベースから動的に追加して準備できる名詞と動詞のリストを作成できるようにしたいと考えています。
私がこのテーマでやろうとしてきた研究の結果が足りなくなったような気がします。
正直なところ、私が調査した内容に基づいてレクサーとパーサーの独自のろくでなしの概念を作成するというアイデアは、私が読んだどのレクサー/パーサージェネレーターを使用するよりも、現時点でははるかに魅力的です。