Расставание зарезервированного слова в разборке выразительной грамматики (peg.js)

StackOverflow https://stackoverflow.com//questions/11712909

  •  13-12-2019
  •  | 
  •  

Вопрос

Подобный вопрос А> и 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_]
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top