0

我必须使用 pegjs 匹配这样的令牌:

?xxx ?yyy

我原以为这会起作用:

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

当我解析源代码时,我得到了错误:

目的 ?没有方法“加入”

这是因为str变量不是匹配标记的数组......知道应该怎么做吗?

4

1 回答 1

1

您可以将文字组合在一起:

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

在这种情况下str将是["?",["a","b","c"]]for ?abc,或者,如果?不一定是第一个字符,则将其包含在类中:

variable 
    = str:[?a-z]+

然后你会得到一个普通的数组["?","a","b","c"]

于 2014-04-13T11:46:26.193 回答