todo
[protos/libecoli.git] / lib / todo.txt
index a29054c..37ffd3b 100644 (file)
@@ -2,15 +2,16 @@ tk_cmd
 ======
 
 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?
@@ -21,20 +22,30 @@ X remove the _new() functions
 - 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?
 X 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 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
+- 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
 ============
 
-- pass the current parsed state when parsing/completing
+X pass the current parsed state when parsing/completing
+X new node "once"
+- new node "condition"
 
 logs
 ====
@@ -47,6 +58,12 @@ 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
 
@@ -71,6 +88,7 @@ doc
 - each node
 - allocation model
 - say that it stops at first match (no ambigous support)
+- say that completion must be exhaustive
 
 build framework
 ===============
@@ -95,6 +113,7 @@ new nodes
 - ether, ip, network
 - fusion node: need to match several children, same for completion
 - float
+- not
 
 encoding
 ========