A análise de uma palavra reservada em Análise Expressivo de Gramática (PEG.js)
Pergunta
O semelhante pergunta e o site do autor me dar soluções como esta:
Identifier "identifier"
= !ReservedWord [A-Za-z_]+
ReservedWord
= "test"
/ "abc"
Esta solução não é possível analisar um identificador como este "test_var".
Neste exemplo, a gramática !ReservedWord será exclusivo todas as variáveis que começam com o "teste" ou "abc".
Obrigado antecipadamente.
Solução
ReservedWord
sucede, quando uma palavra reservada for concluído, independentemente do que se segue.Portanto, a solução é fazê-lo falhar quando há uma partida mais longa que inclui mais de identificador de caracteres:
Identifier "identifier"
= !ReservedWord [A-Za-z_]+
ReservedWord
= ( "test" / "abc" ) ![A-Za-z_]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow