interpret/src/scan.h

44 lines
975 B
C

#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 *);