todo
[protos/libecoli.git] / lib / todo.txt
1 tk_cmd
2 ======
3
4 X evaluate expression tree in ec_tk_expr
5 X cmd token
6 - example
7 X tk_re
8
9 cleanup / rework
10 ================
11
12 - check XXX in code
13 X remove the _new() functions
14 - iterate children nodes without chaining them
15 - add a tk vector type: will be used in several nodes (ex: or, seq, ...)
16 - check allocation model everywhere
17 - checkpatch?
18 - use linux style (update .emacs)
19 - better logs
20 - return values
21 - use errno when returning pointers
22 - missing static / const
23 - license: "s/neither the name...may/the names of its contributors may not/"
24 - check all completion nodes
25 X split ecoli_tk.h
26 - cache results when appropriate?
27 - size_t or unsigned int?
28 X rename:
29   X ec_tk -> ec_node
30   X ec_parsed_tk -> ec_parsed
31   X ec_completed_tk -> ec_completed
32   X tk, gen_tk, token, ... -> node
33   X tokens -> input_str / input_strvec ?
34 - use is_err() or errno for funcs returning ptrs, or use errno for all funcs
35 - save node path in completion to fix help string
36 - code coverage
37 - try to hide structures
38 - anything better than weakref?
39 - add get_max_parse_len() for all relevant nodes
40 - add ec_node_defaults.[ch] providing usual implementations of node methods
41 - use vec for strvec
42
43 dependencies
44 ============
45
46 X pass the current parsed state when parsing/completing
47 X new node "once"
48 - new node "condition"
49
50 logs
51 ====
52
53 - register log types
54
55 yaml
56 ====
57
58 X register nodes by name
59 - interface to add attributes: all nodes must be configurable through a
60   generic api
61   - attr string
62   - attr string list
63   - attr node
64   - attr node list
65   - attr int
66
67 - yaml interface to create nodes
68 - example
69
70 examples
71 ========
72
73 - example which parses arguments (argc/argv)
74 - example that acts as bash completion (ip link ?)
75 - calculator example (var assignation, expression evaluation)
76 - example with libedit
77 - mini script language
78 - configuration file
79
80 doc
81 ===
82
83 - overview
84 - add api doc in .h
85 - generate automatic api doc
86 - architecture
87 - coding rules, process
88 - each node
89 - allocation model
90 - say that it stops at first match (no ambigous support)
91 - say that completion must be exhaustive
92
93 build framework
94 ===============
95
96 - .map files for API
97 - split libs, tests and examples
98 - add make help
99 - add make config
100 - -fvisibility=
101
102 tests
103 =====
104
105 - complete automatic tests with "make test"
106
107 new nodes
108 =========
109
110 - regexp
111 - node which always matches
112 - file + partial completion
113 - ether, ip, network
114 - fusion node: need to match several children, same for completion
115 - float
116 - not
117
118 encoding
119 ========
120
121 - support utf-8 and other encodings
122 - example
123 - documentation
124
125 netconf example
126 ===============
127
128 - demonstration example that parses yang file and generate cli