#include "pair.h" /* pair */ #include "journal.h" /* size_t, date32, line64 */ #define TREE_NAME linemap #define TREE_KEY union line64 #define TREE_VALUE size_t #define TREE_HEAD #include "../src/tree.h" struct source { struct pair name, desc; }; #define ARRAY_NAME source #define ARRAY_TYPE struct source #define ARRAY_HEAD #include "../src/array.h" struct sources { struct source_array array; struct pairmap_table map; struct linemap_tree dates; }; struct score { struct pair key, name; union date32 date, last/* update; need to compare leading value */; unsigned edges, score/* update */; }; #define ARRAY_NAME score #define ARRAY_TYPE struct score #define ARRAY_HEAD #include "../src/array.h" struct scores { struct score_array array; struct pairmap_table map; struct linemap_tree dates; }; struct scan { struct sources sources; struct scores scores; }; void scan_(struct scan *); struct scan scan(struct journal *); int scan_scores_graph(struct scan *);