How to structure reading of commands given at a(n interactive) CLI prompt?
Posted
by
Anto
on Programmers
See other posts from Programmers
or by Anto
Published on 2011-03-16T19:32:16Z
Indexed on
2011/03/17
0:19 UTC
Read the original article
Hit count: 177
Let's say I have a program called theprogram
(the marketing team was on strike when the product was to be named). I start that program by typing, perhaps not surprisingly, the program name as a command into a command prompt. After that, I get into a loop (from the users standpoint, an interactive command-line prompt), where one command will be read from the user, and depending on what command was given, the program will execute some instructions.
I have been doing something like the following (in C-like pseudocode):
main_loop{ in=read_input(); if(in=="command 1") do_something(); else if(in=="command 2") do_something_else(); ... }
(In a real program, I would probably encapsulate more things into different procedures, this is just an example.)
This works well for a small amount of commands, but let's say you have 100, 1000 or even 10 000 of them (the manual would be huge!). It is clearly a bad idea to have 10 000 if
s and else if
s after each other, for instance, the program would be hard to read, hard to maintain, contain a lot of boilerplate code... Yeah, you don't want to do that, so what approach would you recommend me to use (I will probably never use 10 000 commands in a program, but the solution should, at least preferably, be able to scale to that kind of massive (?) problems. The solution doesn't have to allow for arguments to the commands)?
© Programmers or respective owner