summaryrefslogtreecommitdiff
path: root/truth_table.h
blob: 37e535af43b34d60294d995002dda782e359fce2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef TRUTH_TABLE_HG_
#define TRUTH_TABLE_HG_
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include "tree.h"

struct truth_table {
  uint32_t *lines;
  uint8_t lines_count;
  char *letters;
  size_t letters_count;
};

struct expr_input_iter {
  struct truth_table *src;
  uint32_t acc;
  uint32_t count;
};

struct expr_input_iter expr_input_iter_init(struct truth_table *tt);
int32_t expr_input_iter_next(struct expr_input_iter *self);

struct truth_table *truth_table_create(node *root, uint32_t letters_bitfield);
void truth_table_destroy(struct truth_table *tt);
void truth_table_fprint(FILE *stream, struct truth_table *tt);

#endif // TRUTH_TABLE_HG_