ほとんどの IDE と同様に、IntelliSense を備えたテキストエリアを作成しています。私のアプローチは、earley パーサー アルゴリズムを使用することです。
私はEarly-parser-js ライブラリを使用しています。
以下は文法です:
S -> NP VP
VP -> VP PP | V NP | V
PP -> P NP
NP -> Det N | N | Pn | Det A N | A NP
A -> Adv A | A A
Adv -> too | very | quite
Pn -> she | he
A -> fresh | tasty | silver
N -> fish | fork | apple
V -> eats
Det -> a | an | the
P -> with
さて、テキストエリアに「she」と書くと、コードは「eats」、「fish」、「fork」などの次の可能なノードを提案するはずです。