Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Todo List

Class expander::expandable< StringType >
Perhaps use a map type that works similar to a rope, with some elements filled in and other elements asked for (if it can't find a var it will ask some function/functor for it).

Member expander::expandable::expand (StringType &dest, const StringType &src, const FVarMapType &vars, ExpandResultsType &results)
This could be cleaned-up/re-organized a little more (make the params modes use a switch?).

Make a for() loop possible: #for(nameofvartouse,fromval,toval[,step],stringtouse) Simple example: #for(myvar,0,9,${myvar}) Would output: 0123456789

Introduce the [somethingincludingsomevar] way to do: #if(somevar,something,) ; where it should also be possible to use more than one var (they should be ORed).

Make it possible to do things like #if(somevar || somevar,a,b)

NOTE: I have already found a way to work around the following 'todo', but it would nevertheless be interesting.Somehow let the commands parse their parameters (to enable better quoting for example, how else would you quote a comparison operator in the first parameter of an if statement?), it might be good idea to somehow make this optional (for speed as well as convenience, at the moment 'if' is the only command that would really benifit from it)

Support something like this: #command(param1,(subparam1,subparam2,(subsubparam1)),param3), this would need some sort of tree structure (an STL-like tree container)

Class expander::expandresults
Add support for more statistics? (like how many commands)

Member expander::expcmd_btrunc::operator() (StringType &dest, const FParamVectorType &params, const FVarMapType &vars, ExpandResultsType &results) const
Split the one if into two (for params.size() == 2 and params.size() == 3)

Member expander::expcmd_ftrunc::operator() (StringType &dest, const FParamVectorType &params, const FVarMapType &vars, ExpandResultsType &results) const
Split the one if into two (for params.size() == 2 and params.size() == 3)

Member expander::expcmd_if::operator() (StringType &dest, const FParamVectorType &params, const FVarMapType &vars, ExpandResultsType &results) const
Make textual comparison work (using locale's/facets?).

Member expander::expcmd_ltrim::operator() (StringType &dest, const FParamVectorType &params, const FVarMapType &vars, ExpandResultsType &results) const
Write more optimal version

Member expander::expcmd_rtrim::operator() (StringType &dest, const FParamVectorType &params, const FVarMapType &vars, ExpandResultsType &results) const
Write more optimal version

Member expander::expcmd_trim::operator() (StringType &dest, const FParamVectorType &params, const FVarMapType &vars, ExpandResultsType &results) const
Write more optimal version

Class expander::expvartype_date< StringType >
Make it possible to define the way the date is formatted, using parameters

Member expander::expvartype_list::SetValue (const StringType &s)
Have to make it possible to set a list with a string, using a tokenizer(?)

Class expander::expvartype_time< StringType, NotimeMSValue >
Make it possible to define the way the time is formatted, using parameters

Namespace expander
Should something be done about that pragma warning(disable: 4355) ?

Use more cpp files (one for every command, containing the code to process the command, for example) But then templates can't be used...

Member expander::TwoCharVarDelimiter
These should really be declared in expander::expandable, with type StringType::value_type

Generated on Tue Feb 4 17:24:24 2003 for ExpandLib by doxygen1.3-rc2