假设我有以下虚构的语法,并带有一个递归定义的子句。
sentence := clause +
subject := (qualifier *) subjectiveNoun
objects := object +
object := nothing | (qualifier *) objectiveNoun
clause := subject objects verb
qualifier := adjective | clause
假设其他所有内容都具有非递归定义,那么应该如何为“子句”编写 JavaScript 语法?如果有人熟悉 XRegExp 库来执行此操作,那将是一个加分项。