[Home] [Groups] - Message: [Prev in Group] [Next in Group]
9552: [MUD-Dev] Question on c++ switch optimization, and parsers in general.
[Full Header] [Plain Text]
From: Ben Greear <greear@cyberhighway.net>
Newsgroups: nu.kanga.list.mud-dev
Date: Sun, 07 Feb 1999 22:03:21 -0700
Organization: Kanga.Nu
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.
Thanks,
Ben
--
Ben Greear (greear@cyberhighway.net) http://www.primenet.com/~greear
Author of ScryMUD: mud.primenet.com 4444 (Released under GPL)
http://www.primenet.com/~greear/ScryMUD/scry.html