Parsing di una parola riservata in analisi grammatica espressiva (PEG.JS)
Domanda
the Domanda simile e il Sito web dell'autore dammi soluzioni come questa:
Identifier "identifier"
= !ReservedWord [A-Za-z_]+
ReservedWord
= "test"
/ "abc"
.
Questa soluzione non può analizzare un identificatore come questa "Test_var".
In questo esempio, la grammatica! ReservedWord sarà esclusiva tutte le variabili che iniziano con "Test" o "ABC".
Grazie in anticipo.
Soluzione
ReservedWord
ha successo, quando una parola riservata è completa, indipendentemente da ciò che segue.Quindi la soluzione è quella di fallire quando c'è una corrispondenza più lunga che include più caratteri identificativi:
Identifier "identifier"
= !ReservedWord [A-Za-z_]+
ReservedWord
= ( "test" / "abc" ) ![A-Za-z_]
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow