Maybe replace this with `llvm::StringSwitch`, if the code it generates is not too terrible? I'm a bit sad to see binary search being re-implemented all over the (DMD) code base.