Frage

Ich muss solche Token mit Pegjs abgleichen:

?xxx ?yyy

Ich hätte gedacht, das würde funktionieren :

variable 
   = str:?[a-z]+ {  console.log('---->>>',str); return str.join(""); } 

Wenn ich die Quelle analysiere, erhalte ich einen Fehler:

Objekt ?hat keine Methode 'join'

Dies liegt daran, dass die str variable ist kein Array der übereinstimmenden Token...Irgendeine Idee, wie das gemacht werden soll?

War es hilfreich?

Lösung

Sie können entweder Literale gruppieren:

variable 
    = str:("?"[a-z]+)

in welchem Fall str wird sein ["?",["a","b","c"]] für ?abc, oder, wenn ? ist nicht unbedingt das erste Zeichen, füge es einfach in die Klasse ein:

variable 
    = str:[?a-z]+

dann bekommst du ein normales Array ["?","a","b","c"].

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top