summaryrefslogtreecommitdiff
path: root/src/tree.h
blob: e1dd42480d83c907d31402552c6f6dcb1d8527b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once

#include "parse.h"
#include <stddef.h>

#define ACTIONS(X) \
        X(ACTION_MATCH) \
        X(ACTION_DEL_A) \
        X(ACTION_ADD_B) \
        X(ACTION_END) \

#define ENUM_VALUE(NAME) NAME,
#define STRING_ARRAY_VALUE(NAME) #NAME,

enum Action {
    ACTIONS(ENUM_VALUE)
};

static const char *ActionNames[] = {
    ACTIONS(STRING_ARRAY_VALUE)
};

void expand_alignment(struct Tree a_tree, struct Tree b_tree, uint32_t *alignment, enum Action *emit_actions);