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