cmdr
Artifact Content
Not logged in

Artifact 10e02cfd71961b6f22b71a856a4e3cf35b3ca140:



help generation todo.

     do not document the special forms of the
     booleans

     document aliases, group them with the main option!




Make chart of v-type heuristics to select one when not specified by
the user.

Similarly make chart for default value heuristics


input  - validate default: str!    (new, change)
option - validate default boolean! (as-is)
state  - validate default as input


New attribute:
	force - Force value (and when-complete action)
	        before dispatching to the command prefix of
		the actor.

Extended common handling

Key *all* is special to the parameter DSL, always and automatically
'use'd when present, as first action. For common options, common
state, possibly forced. (s.a.).



Classes
	Main xo is wrapper/singleton/enseble around officer.

	actor	base class, instances can do actions

	- private	derived. can do only/exactly one action.
	  	     	knows how parse and handle argument specs

	- officer	derived. can do multiple actions. but not by
	  	     	itself, only through delegation to other
	  	     	officers or privates.

	actors have a name (for use in prompts).
	actors know their boss (chain of command).

	actors (or just officers?) have associative data store for
	sharing of knowledge in the chain. -- Use for fragments of
	argument specs.

	the derived actors parse their specs only when needed,
	i.e. defered until actually called on in some way. Keeps
	startup time low, unfolding only the parts of the command
	hierarchy required by the system.


Argument Spec and Values

	config	base class. collection of arguments.
		in-memory representation of an argument spec.

	value	base class for a single argument.
		configuration and value.
		constructed from argument spec.

	- input		derived. mandatory argument.
	  		filled from parameters in order.

	- optional	derived. optional argument.
	  		filled from parameters in order.

	- option	derived. option argument.

	- invisible	derived. argument not visible to the user.

	All value instances have access to the configuration instance
	they are part of. Allows them to have access to all other
	values, be they arguments, options, or invisible.