Question

J'ai pour correspondre à jetons comme ceci en utilisant pegjs:

?xxx ?yyy

J'aurais pensé que ce serait le travail :

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

Quand j'ai analyser la source je reçois et d'erreur:

L'objet ?n'a pas de méthode "rejoindre"

C'est parce que l' str la variable n'est pas un tableau de la correspondance des jetons...Une idée de comment cela doit être fait?

Était-ce utile?

La solution

Vous pouvez soit le groupe de littéraux ensemble:

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

auquel cas str sera ["?",["a","b","c"]] pour ?abc, ou, si ? n'est pas nécessairement le premier char, il suffit de l'inclure dans la classe:

variable 
    = str:[?a-z]+

ensuite, vous aurez un tableau normal ["?","a","b","c"].

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top