Я создаю текстовую область, которая имеет intellisense, как и большинство IDE.Мой подход заключается в использовании алгоритма парсера 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
Теперь, если я напишу "она" в текстовой области, мой код должен предложить следующий возможный узел, такой как "ест", "рыба", "вилка" и т. Д.