[MUD-Dev] Question on c++ switch optimization, and parsers in general.

Ben Greear greear at cyberhighway.net
Sun Feb 7 22:03:21 New Zealand Daylight Time 1999

Well, after the 400th person said my parse engine was an insult to
hackers everywhere (I was the first of those 400!!), I am re-writing it.

Basically, I'll have a bunch of classes hashed into an array
that will contain the keywords mapped to an enum.

Now, I get the enum, and then I need to call the various commands
that the enum maps to.

Currently, I'm using a huge (~400 cases) switch statement.

So, the question is:  Is that efficient?  Does the compiler
generate code that does better than a linear search down the
case statements?  If not, I can manually hack a sort of n-ary
tree performance into it, but I'd wrather not if I can help it.

Also, I'll be curious if anyone wants to spew forth their own ideas
on how to parse user's commands into callable methods.


Ben Greear (greear at cyberhighway.net)  http://www.primenet.com/~greear 
Author of ScryMUD:  mud.primenet.com 4444        (Released under GPL)

More information about the MUD-Dev mailing list