[Home] [Groups] - Message: [Prev in Group] [Next in Group]

nu.kanga.list.mud-dev

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