假设我有以下虚构的语法,带有子句的递归定义。
sentence := clause +
subject := (qualifier *) subjectiveNoun
objects := object +
object := nothing | (qualifier *) objectiveNoun
clause := subject objects verb
qualifier := adjective | clause
假设其他一切都有一个非递归定义,应该如何为“子句”编写 javascript 语法?如果有人熟悉 XRegExp 库来执行此操作,那将是一个额外的优势。
最佳答案
XRegExp 库确实支持递归匹配1,但您的目标是什么?如果您能够将其与正则表达式相匹配,那又如何呢?如果您打算处理解析树,那么正则表达式用处不大,它只会告诉您源匹配与否。在这种情况下,请查看 PEG.js或 Jison .
关于javascript - javascript中递归语法的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15083193/