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.

È stato utile?

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
scroll top