我正在创建一个文本区域,它像大多数 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
现在,如果我在 textarea 中写“she”,我的代码应该建议下一个可能的节点,如“eats”、“fish”、“fork”等。