X-Git-Url: http://git.droids-corp.org/?p=protos%2Flibecoli.git;a=blobdiff_plain;f=todo.txt;h=739e3504fe8ed9fe36498c7d534ded3bf2cde16f;hp=2b84064d6768b67c1c49c0d7a29e42c74135cd90;hb=HEAD;hpb=181334a4cd586d3c958898dd19291b856c461dee diff --git a/todo.txt b/todo.txt index 2b84064..739e350 100644 --- a/todo.txt +++ b/todo.txt @@ -44,6 +44,9 @@ X use vec for strvec X remove weakref? - sh_lex to provide offsets in attributes - accessors for all structs +- private vs user attributes? +- limit max loop, +- limit max completions dependencies ============ @@ -84,6 +87,7 @@ examples - mini shell: cd, ls, cat, stat - mini network console based on ip - dialog-like for use in shell +- pcap https://github.com/the-tcpdump-group/libpcap/blob/master/grammar.y doc === @@ -123,6 +127,8 @@ X file + partial completion - fusion node: need to match several children, same for completion? - float - not +- reparse: parse a tree with received strvec, then another tree + with strvec generated from first tree encoding ======== @@ -421,3 +427,97 @@ c --------------- +about split in several libraries + +There are several options: + +1/ one library, config options to select libyaml, libedit + - need to manage dependencies in build system + +2/ one library for ecoli-core, one for ecoli-yaml, one for + ecoli-edit + - extra complexity + +3/ one library with core + yaml + edit + dependency is managed at runtime + + +-------------- + +current naming: ec_node_parse* and ec_comp_complete* are not +so good names + +struct ec_comp +alloc ec_complete() +free ec_complete_free() +action ec_comp_complete() +action ec_comp_complete_strvec() +action ec_comp_dump() +action ec_comp_merge() +accessors ec_comp_get() + +struct ec_parse +alloc ec_parse() +free ec_parse_free() +action ec_node_parse() +action ec_node_parse_strvec() +accessors ... + +struct ec_node +alloc ec_node() +free ec_node_free() +action ... +accessors ... + +struct ec_strvec +alloc ec_strvec() +free ec_strvec_free() +action ec_strvec_*() + +--------- + +proposal + +- struct name must not be a verb (ex: not ec_parse) +- allocator is the name of struct +- actions are _() except for basic/common actions +- basic actions are ec_() +- accessors (get) are _() +- accessors (set) are _set_() + + +XXX list all functions to be sure +XXX this could go in documentation (coding rules) + +struct ec_comp +alloc ec_comp() +free ec_comp_free() +action ec_complete() +action ec_complete_strvec() +action ec_comp_dump() +action ec_comp_merge() +accessors ec_comp_id() +accessors ec_comp_attrs() + +(pnode means parsed node) +struct ec_pnode +alloc ec_pnode() +free ec_pnode_free() +action ec_parse() +action ec_parse_strvec() +accessors ... + +(node means grammar node) +struct ec_node +alloc ec_node() +free ec_node_free() +action ... +accessors ec_node_get*() + +struct ec_strvec +alloc ec_strvec() +free ec_strvec_free() +action ec_strvec_*() + +--- +