Расставание зарезервированного слова в разборке выразительной грамматики (peg.js)
Вопрос
Подобный вопрос А> и a ta href="http://github.com/dmajda/pegjs/blob/master/examples/javascript.pegjs" rel="nofollow noreferrer"> Авторский сайт Дайте мне такие решения:
Identifier "identifier"
= !ReservedWord [A-Za-z_]+
ReservedWord
= "test"
/ "abc"
.
Это решение не может анализировать идентификатор, такой как этот «test_var».
В этом примере грамматика! Зарезервированноеворрование исключит все переменные, начиная с «теста» или «ABC».
Спасибо заранее.
Решение
ReservedWord
успешен, когда зарезервированное слово завершено, независимо от того, что следует.Таким образом, решение заключается в том, чтобы изменить его, когда происходит более длительное совпадение, которое включает в себя больше символов идентификатора:
Identifier "identifier"
= !ReservedWord [A-Za-z_]+
ReservedWord
= ( "test" / "abc" ) ![A-Za-z_]
. Не связан с StackOverflow