Dreams entered.
This commit is contained in:
parent
4b905ccefa
commit
311316ef88
10
src/scan.h
10
src/scan.h
|
@ -7,6 +7,11 @@
|
||||||
#define TREE_VALUE size_t
|
#define TREE_VALUE size_t
|
||||||
#define TREE_HEAD
|
#define TREE_HEAD
|
||||||
#include "../src/tree.h"
|
#include "../src/tree.h"
|
||||||
|
#define TREE_NAME linepair
|
||||||
|
#define TREE_KEY union line64
|
||||||
|
#define TREE_VALUE struct pair
|
||||||
|
#define TREE_HEAD
|
||||||
|
#include "../src/tree.h"
|
||||||
|
|
||||||
/* Eg, source array. */
|
/* Eg, source array. */
|
||||||
struct kvpair { struct pair key, value; };
|
struct kvpair { struct pair key, value; };
|
||||||
|
@ -134,8 +139,9 @@ struct scan {
|
||||||
struct pairmap_table map;
|
struct pairmap_table map;
|
||||||
struct linemap_tree dates;
|
struct linemap_tree dates;
|
||||||
} edits;
|
} edits;
|
||||||
struct linekvpair_tree contacts, books, tvs, movies, ideas, vaccines,
|
struct linepair_tree dreams;
|
||||||
medications;
|
struct linekvpair_tree contacts, books, tvs, movies, ideas,
|
||||||
|
vaccines, medications;
|
||||||
struct linekvmoney_tree taxes, incomes;
|
struct linekvmoney_tree taxes, incomes;
|
||||||
struct glider_tree gliders;
|
struct glider_tree gliders;
|
||||||
struct flight_tree flights;
|
struct flight_tree flights;
|
||||||
|
|
|
@ -33,6 +33,20 @@ static void pair_to_string(const struct pair *const p,
|
||||||
*y = '\0';
|
*y = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void linepair_to_string(const union line64 line,
|
||||||
|
const struct pair *const pair,
|
||||||
|
char (*const a)[12]) { (void)pair; date32_to_string(line.date, a); }
|
||||||
|
static int linepair_compare(const union line64 a, const union line64 b)
|
||||||
|
{ return a.u64 > b.u64; }
|
||||||
|
#define TREE_NAME linepair
|
||||||
|
#define TREE_KEY union line64
|
||||||
|
#define TREE_VALUE struct pair
|
||||||
|
#define TREE_COMPARE
|
||||||
|
#define TREE_TO_STRING
|
||||||
|
#define TREE_DEFAULT {0,0}
|
||||||
|
#define TREE_BODY
|
||||||
|
#include "../src/tree.h"
|
||||||
|
|
||||||
/* Array of kvpair. */
|
/* Array of kvpair. */
|
||||||
static void kvpair_to_string(const struct kvpair *const s,
|
static void kvpair_to_string(const struct kvpair *const s,
|
||||||
char (*const z)[12]) { pair_to_string(&s->key, z); }
|
char (*const z)[12]) { pair_to_string(&s->key, z); }
|
||||||
|
@ -232,6 +246,19 @@ static int scan_day(struct scan *const scan, union date32 date,
|
||||||
<bracket> "in: " :=> income
|
<bracket> "in: " :=> income
|
||||||
<bracket> "mail: " :=> mail
|
<bracket> "mail: " :=> mail
|
||||||
|
|
||||||
|
<line> "- " => input_text {
|
||||||
|
const union line64 key = { { (uint32_t)line, date } };
|
||||||
|
struct pair *pair;
|
||||||
|
switch(linepair_tree_bulk_assign(&scan->dreams, key, &pair)) {
|
||||||
|
case TREE_PRESENT: fail = "duplicate"; case TREE_ERROR: goto catch;
|
||||||
|
case TREE_ABSENT: break;
|
||||||
|
}
|
||||||
|
pair->a = pair->b = 0;
|
||||||
|
input.future = yycnewline, input.pair = pair;
|
||||||
|
fprintf(stderr, "%s[%zu]: new dream.\n", datestr, line);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
/* Whatsapp messages ignored. [11-03, 04:19] Contact: massage
|
/* Whatsapp messages ignored. [11-03, 04:19] Contact: massage
|
||||||
Hopefully they don't have a ':' in their name. */
|
Hopefully they don't have a ':' in their name. */
|
||||||
<bracket> [0-1][0-9] "-" [0-3][0-9] ", " [0-2][0-9] ":" [0-5][0-9] "] "
|
<bracket> [0-1][0-9] "-" [0-3][0-9] ", " [0-2][0-9] ":" [0-5][0-9] "] "
|
||||||
|
@ -916,6 +943,7 @@ void scan_(struct scan *const scan) {
|
||||||
linekvpair_tree_(&scan->tvs);
|
linekvpair_tree_(&scan->tvs);
|
||||||
linekvpair_tree_(&scan->books);
|
linekvpair_tree_(&scan->books);
|
||||||
linekvpair_tree_(&scan->contacts);
|
linekvpair_tree_(&scan->contacts);
|
||||||
|
linepair_tree_(&scan->dreams);
|
||||||
|
|
||||||
linemap_tree_(&scan->scores.dates);
|
linemap_tree_(&scan->scores.dates);
|
||||||
pair_map_table_(&scan->scores.map);
|
pair_map_table_(&scan->scores.map);
|
||||||
|
@ -981,6 +1009,7 @@ struct scan scan(struct journal *const jrnl) {
|
||||||
|| !linemap_tree_bulk_finish(&scan.places.dates)
|
|| !linemap_tree_bulk_finish(&scan.places.dates)
|
||||||
|| !linemap_tree_bulk_finish(&scan.scores.dates)
|
|| !linemap_tree_bulk_finish(&scan.scores.dates)
|
||||||
|| !linemap_tree_bulk_finish(&scan.edits.dates)
|
|| !linemap_tree_bulk_finish(&scan.edits.dates)
|
||||||
|
|| !linepair_tree_bulk_finish(&scan.dreams)
|
||||||
|| !linekvpair_tree_bulk_finish(&scan.contacts)
|
|| !linekvpair_tree_bulk_finish(&scan.contacts)
|
||||||
|| !linekvpair_tree_bulk_finish(&scan.books)
|
|| !linekvpair_tree_bulk_finish(&scan.books)
|
||||||
|| !linekvpair_tree_bulk_finish(&scan.tvs)
|
|| !linekvpair_tree_bulk_finish(&scan.tvs)
|
||||||
|
|
Loading…
Reference in New Issue