如何匹配以“”开头的令牌"在pegjs中

How do I match tokens starting with "?" in pegjs

本文关键字:quot pegjs 令牌 何匹配 开头      更新时间:2023-09-26

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

?xxx ?yyy

我本以为这会奏效:

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

当我解析我得到的源并出错时:

对象?没有方法"加入"

这是因为str变量不是匹配令牌的数组。。。你知道该怎么做吗?

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

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

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

variable 
    = str:[?a-z]+

那么你将得到一个普通的数组CCD_ 6。