int findBinaryOp(Context ctx, IList<Token> tls, int s, int e, ref Syntax synRef)
{
int idx = -1;
int prif = 0;
for(int i = skipUnaryOp(ctx, tls, s, e) + 1; i < e; i++) {
Token tk = tls[i];
Syntax syn = ks.GetSyntax(tk.Keyword);
// if(syn != NULL && syn->op2 != 0) {
if(syn.priority > 0) {
if (prif < syn.priority || (prif == syn.priority && syn.Flag != SynFlag.ExprLeftJoinOp2))
{
prif = syn.priority;
idx = i;
synRef = syn;
}
if(syn.Flag != SynFlag.ExprPostfixOp2) { /* check if real binary operator to parse f() + 1 */
i = skipUnaryOp(ctx, tls, i+1, e) - 1;
}
}
}
return idx;
}