diff --git a/operator-insert.go b/operator-insert.go index 076a3c2..cb9c560 100644 --- a/operator-insert.go +++ b/operator-insert.go @@ -40,6 +40,10 @@ func evalInsert(ctx ExprContext, opTerm *term) (v any, err error) { if opTerm.children[1].symbol() == SymVariable { ctx.UnsafeSetVar(opTerm.children[1].source(), v) } + } else if IsInteger(leftValue) && IsInteger(rightValue) { + leftInt := leftValue.(int64) + rightInt := rightValue.(int64) + v = leftInt >> rightInt } else { err = opTerm.errIncompatibleTypes(leftValue, rightValue) } @@ -60,6 +64,10 @@ func evalAppend(ctx ExprContext, opTerm *term) (v any, err error) { if opTerm.children[0].symbol() == SymVariable { ctx.UnsafeSetVar(opTerm.children[0].source(), v) } + } else if IsInteger(leftValue) && IsInteger(rightValue) { + leftInt := leftValue.(int64) + rightInt := rightValue.(int64) + v = leftInt << rightInt } else { err = opTerm.errIncompatibleTypes(leftValue, rightValue) }