[英]How do I match tokens starting with “?” in pegjs
我必须使用pegjs匹配这样的令牌:
?xxx ?yyy
我本以为这会起作用:
variable
= str:?[a-z]+ { console.log('---->>>',str); return str.join(""); }
当我解析源时,我得到并出错:
对象? 没有方法“加入”
这是因为str
变量不是匹配标记的数组...任何想法该怎么做?
您可以将文字组合在一起:
variable
= str:("?"[a-z]+)
在这种情况下["?",["a","b","c"]]
对于?abc
, str
将为["?",["a","b","c"]]
,或者,如果为?
不一定是第一个字符,只需将其包括在类中:
variable
= str:[?a-z]+
那么您将获得一个普通数组["?","a","b","c"]
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.