関数呼び出しは

結局こうなった。

void PostExpression():{}{
    (PrimitiveExpression() | NewExpression()) (
        LOOKAHEAD(1) (
            ["<<" | "<<?"] Identifier() [LOOKAHEAD(1) ":" CallArguments()]
        |   ":" args = CallArguments()
        )
    )*
}
void CallArguments():{}{
    CallArgument() (LOOKAHEAD(1) ":" CallArgument())*
}
void CallArgument():{}{
    PrimitiveExpression()
}

この文法で、例えば

new java.awt.Frame:"sample" setSize:250,120 show;
fun:x,y do return x + y; end: 123, 456;

みたいなものが許容されるはず。