-- evaluate expression tree in ec_tk_expr
-- cmd token
-- node regexp
-- node which always matches
-- yaml interface to create nodes
+tk_cmd
+======
+
+X evaluate expression tree in ec_tk_expr
+X cmd token
+- example
+X tk_re
+
+cleanup / rework
+================
+
+- add_no_match
+- add_partial_match
- check XXX in code
+- properly manage quotes in shlex
+X remove the _new() functions
+- iterate children nodes without chaining them
+- add a tk vector type: will be used in several nodes (ex: or, seq, ...)
+- check allocation model everywhere
+- checkpatch?
+- use linux style (update .emacs)
+- better logs
+- return values
+- use errno when returning pointers
+- missing static / const
+- license: "s/neither the name...may/the names of its contributors may not/"
+- check all completion nodes
+X split ecoli_tk.h
+- cache results when appropriate?
+- size_t or unsigned int?
+X rename:
+ X ec_tk -> ec_node
+ X ec_parsed_tk -> ec_parsed
+ X ec_completed_tk -> ec_completed
+ X tk, gen_tk, token, ... -> node
+ X tokens -> input_str / input_strvec ?
+- use is_err() or errno for funcs returning ptrs, or use errno for all funcs
+- save node path in completion to fix help string
+- code coverage
+- try to hide structures
+- anything better than weakref?
+- add get_max_parse_len() for all relevant nodes
+- add ec_node_defaults.[ch] providing usual implementations of node methods
+- use vec for strvec
+
+dependencies
+============
+
+X pass the current parsed state when parsing/completing
+X new node "once"
+- new node "condition"
+
+logs
+====
+
+- register log types
+
+yaml
+====
+
+X register nodes by name
+- interface to add attributes: all nodes must be configurable through a
+ generic api
+ - attr string
+ - attr string list
+ - attr node
+ - attr node list
+ - attr int
+
+- yaml interface to create nodes
+- example
+
+examples
+========
+
- example which parses arguments (argc/argv)
- example that acts as bash completion (ip link ?)
- calculator example (var assignation, expression evaluation)
+- example with libedit
+- mini script language
+- configuration file
+
+doc
+===
+
+- overview
+- add api doc in .h
+- generate automatic api doc
+- architecture
+- coding rules, process
+- each node
+- allocation model
+- say that it stops at first match (no ambigous support)
+- say that completion must be exhaustive
+
+build framework
+===============
+
+- .map files for API
+- split libs, tests and examples
+- add make help
+- add make config
+- -fvisibility=
+
+tests
+=====
+
+- complete automatic tests with "make test"
+
+new nodes
+=========
+
+- regexp
+- node which always matches
+- file + partial completion
+- ether, ip, network
+- fusion node: need to match several children, same for completion
+- float
+- not
+
+encoding
+========
+
+- support utf-8 and other encodings
+- example
+- documentation
+
+netconf example
+===============
+
+- demonstration example that parses yang file and generate cli
+
+
+
+-----------------------
+
+readline:
+
+[tab] list possible completions (matches only)
+[?] list what is expected, example:
+
+"command [foo] toto|titi|<int>"
+
+help("command f") ->
+ foo (help of foo)
+ toto (help of toto)
+ titi (help of titi)
+ <int> (help of int)
+