======
X evaluate expression tree in ec_tk_expr
-- cmd token
+X cmd token
- example
X tk_re
-cleanup
-=======
+cleanup / rework
+================
- check XXX in code
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?
- missing static / const
- license: "s/neither the name...may/the names of its contributors may not/"
- check all completion nodes
-- split ecoli_tk.h
+X split ecoli_tk.h
- cache results when appropriate?
- size_t or unsigned int?
-- rename:
- - ec_tk -> ec_node
- - ec_parsed_tk -> ec_parsed
- - ec_completed_tk -> ec_completed
- - tk, gen_tk, token, ... -> node
- - tokens -> input_str / input_strvec ?
+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
+- save node path in completion to fix help string
+- code coverage
+- try to hide structures
+
+dependencies
+============
+
+X pass the current parsed state when parsing/completing
+X new node "once"
+- new node "condition"
logs
====
====
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
- each node
- allocation model
- say that it stops at first match (no ambigous support)
+- say that completion must be exhaustive
build framework
===============
- ether, ip, network
- fusion node: need to match several children, same for completion
- float
+- not
encoding
========