Todo file for ECLOP =================== author: "Paul Cohen" date: "$Date$" revision: "$Revision$" 1. Review and refactor the parsers, at least for readability. Possibly use Gobo lex and yacc! 2. Rewrite for Gobo and make sure it works with SmartEiffel and VisualEiffel. 3. Add support for specifying that an option takes *exactly* 1 (one) argument Or maybe even exactly N arguments!? 4. Add support for specifying the expected type of an option argument. Examples: "-s=SIZE:INTEGER" Types to consider: INTEGER, REAL, STRING (default), FILE, DIRECTORY. Another type would be a "set element type". Example: "--optimize=MODE:{speed,memory,accuracy}" The above specification would only accept one of the the following option arguments for the option --optimize: >foo --optimize=speed >foo --optimize=memory >foo --optimize=accuracy 5. Add support for specifying for a set of mutually exclusive options, that one of them must be given on the command line. Probably like: "(-a|-b|-c)!" 6. The COMMAND_LINE_SYNTAX should generate an error if any option used in a mutually exclusivity specification is also marked as a required option. 7. Sort out how multiple option arguments can be given in different Unix shells and Windows command prompts and how to handle it. Example: > foo -i"bar car" 8. Generate proper grouping of mutually exclusive options in the usage string. Examples: If "(-a|-b|-c)" has been specified then usage shoud produce something like this Usage: foo [(-a|-b|-c)] If "(-a|-b|-c)!" has been specified then usage shoud produce something like this Usage: foo (-a|-b|-c) 9. Enable the clients of COMMAND_LINE_SYNTAX to specify what parsing conventions/rules to apply. For example, use_posix_rules, use_gnu_rules etc. 10. Set up a SourceForge project for ECLOP. 11. Add support for adding locale (language) specific messages.