繁体   English   中英

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

[英]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"]]对于?abcstr将为["?",["a","b","c"]] ,或者,如果为? 不一定是第一个字符,只需将其包括在类中:

variable 
    = str:[?a-z]+

那么您将获得一个普通数组["?","a","b","c"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM