aboutsummaryrefslogtreecommitdiff
path: root/src/prc1/set.h
blob: fdd067ae2da04593a9731af845925a5cbd5479bf (plain) (blame)
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
29
#ifndef SET_H
#define SET_H

#include "cgen.h"
#include "lex.h"
#include "parse.h"
#include "prv.h"
#include "storage.h"
#include <stddef.h>

struct setdst
{
    const struct stentry *entry;
};

struct set
{
    enum {SET_VAL, SET_VAR, SET_ADDR, SET_IMB} type;
    const struct stentry *off, *src;
    unsigned long long srcv;
    struct setdst *dsts;
    size_t ndsts;
};

int set(const struct lex *l, struct prv *p);
int set_cgen(const struct set *s, struct cgen *c);
void set_free(struct set *s);

#endif