Something went wrong. Try again.
🌱 A minimal programming language and compiler. git.urbach.dev/cli/q
high-performance programming-language compiler
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031package optimizer
import "git.urbach.dev/cli/q/src/token"
// foldBinary calculates the result of the binary operation.func foldBinary(op token.Kind, a int, b int) int { switch op { case token.Add: return a + b case token.And, token.LogicalAnd: return a & b case token.Div: return a / b case token.Mul: return a * b case token.Mod: return a % b case token.Or, token.LogicalOr: return a | b case token.Shl: return a << (b & 63) case token.Shr: return a >> (b & 63) case token.Sub: return a - b case token.Xor: return a ^ b default: panic("unknown fold operation: " + op.String()) }}