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.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119package token
// operatorKind returns the token kind for the given byte slice.// The boolean value indicates if the next byte was used.// A valid token always stops the search for more characters.// An invalid token with true indicates continued parsing.// An invalid token with false indicates cancellation.func operatorKind(op []byte, next byte) (Kind, bool) { switch string(op) { case "!": switch next { case '=': return NotEqual, true default: return Not, false } case "%": switch next { case '=': return ModAssign, true default: return Mod, false } case "&": switch next { case '=': return AndAssign, true case '&': return LogicalAnd, true default: return And, false } case "*": switch next { case '=': return MulAssign, true default: return Mul, false } case "+": switch next { case '=': return AddAssign, true default: return Add, false } case ".": switch next { case '.': return Range, true default: return Dot, false } case ":": switch next { case '=': return Define, true default: return StructField, false } case "<": switch next { case '=': return LessEqual, true case '<': return Invalid, true default: return Less, false } case "<<": switch next { case '=': return ShlAssign, true default: return Shl, false } case ">": switch next { case '=': return GreaterEqual, true case '>': return Invalid, true default: return Greater, false } case ">>": switch next { case '=': return ShrAssign, true default: return Shr, false } case "=": switch next { case '=': return Equal, true default: return Assign, false } case "^": switch next { case '=': return XorAssign, true default: return Xor, false } case "|": switch next { case '=': return OrAssign, true case '|': return LogicalOr, true default: return Or, false } default: return Invalid, false }}