match 演算子と replace 演算子

void RegexExpression()#void:{
}{
    AdditionalExpression() (
        "~=" AdditionalExpression() #OpRegexMatch(2)
    |   "^=" AdditionalExpression() #OpRegexReplace(2)
    )*
}

今更思ったんだけど、match はまだしも、replace って2項演算子じゃ無理じゃね?

void RegexExpression()#void:{
}{
    AdditionalExpression() (
        "~=" AdditionalExpression() #OpRegexMatch(2)
    |   "^=" AdditionalExpression() "->" AdditionalExpression() #OpRegexReplace(3)
    )*
}

3項演算子へ変更