【问题标题】:What are square brackets used for in JavaCCJavaCC 中的方括号是做什么用的
【发布时间】:2018-10-28 16:25:17
【问题描述】:

当我在方括号内有一个非终端时,JavaCC 中的人,例如:

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

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

它周围的方括号是什么意思?

【问题讨论】:

    标签: java recursion compiler-construction javacc


    【解决方案1】:

    [OtherNonTerminal()](OtherNonTerminal())? 相同,表示OtherNonTerminal 是可选的。也就是说,NonTerminal 可以匹配 OtherNonTerminal,也可以不匹配。

    【讨论】:

    • 您好,感谢您的回复!所以,即使我在 NonTermianl() 生产规则下,OtherNonTerminal | {},它也是一样的?
    • @webchatowner 是的。
    • 那么[ NonTerminal() OtherNonTerminal()]NonTerminal() OtherNonTerminal | {} 一样吗?只是确保。 @sepp2k
    • @webchatowner 是或只是NonTerminal() OtherTerminal() | - 替代可以是空的,你不需要{}
    • @webchatowner 不,没有错,空大括号什么也没做。
    猜你喜欢
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多