La risposta è si. Tuttavia non lo farei con un parser Earley perché ce ne sono di più semplici con le stesse capacità.
Fondamentalmente, il parser Earley appartiene a una famiglia di parser generici senza contesto, che produce tutte le analisi possibili per una data stringa, quando la grammatica è ambigua.
Esistono due modi (almeno) per comprendere questi parser:
come interpretazione di programmazione dinamica di un automa pushdown corrispondente alla grammatica sulla stringa di input;
come la costruzione dell'intersezione della grammatica con un automa a stati finiti.
w| w | +1UNsolFL (A)∩ L (G)Fsol, fino alla ridenominazione non terminale (a causa del prodotto incrociato).
UNFL (G)∅sol
F
Ma, come vedi, questo generalizza l'analisi di un intero set regolare, se qualcuno è interessato a farlo.
ww
solF
Se lo si desidera, questo può essere usato per mantenere solo le stringhe con una distanza minima.
Tuttavia, questo può essere leggermente migliorato poiché la composizione con macchine a stati finiti è associativa.
solwΣ*
Sarebbe facile potare quella costruzione per ottenere lo stesso risultato di prima, ma il modo migliore è una costruzione di intersezione più controllata, come l'organizzazione dinamica di programmazione usata dalla maggior parte dei parser in letteratura, inclusa Earley, e usarla per evitare di generare regola inutile calcolando le distanze e interrompendo qualsiasi percorso computazionale quando supera la soglia desiderata. La programmazione dinamica può anche essere utilizzata per calcolare direttamente la foresta di analisi (o albero di analisi) per la stringa che ha la distanza più breve dall'input.