JavaCC 中方括号的用途是什么

What are square brackets used for in JavaCC

当我在方括号内有一个非终结符时,JavaCC 中的伙计们,例如:

void NonTerminal: {}
{
    [OtherNonTerminal()]
}

void OtherNonTerminal: {}
{
    <TOKEN> [<OTHERTOKEN> OtherNonTerminal()]
}

两边的方括号是什么意思?

[OtherNonTerminal()](OtherNonTerminal())? 相同,意味着 OtherNonTerminal 是可选的。也就是说,NonTerminal 可以匹配 OtherNonTerminal 或什么都不匹配。