Martin Dørum 3 år sedan
förälder
incheckning
3580a28e00
2 ändrade filer med 23 tillägg och 0 borttagningar
  1. 9
    0
      include/lang2/parse/parse.h
  2. 14
    0
      src/parse/parse.c

+ 9
- 0
include/lang2/parse/parse.h Visa fil

@@ -3,12 +3,21 @@

#include "lex.h"
#include "../io.h"
#include "../strset.h"

struct l2_parse_state {
struct l2_lexer *lexer;
struct l2_bufio_writer writer;
struct l2_strset atoms;
struct l2_strset strings;
};

void l2_parse_init(
struct l2_parse_state *state,
struct l2_lexer *lexer, struct l2_io_writer *w);

void l2_parse_free(struct l2_parse_state *state);

void l2_parse_program(struct l2_parse_state *state);

#endif

+ 14
- 0
src/parse/parse.c Visa fil

@@ -2,6 +2,20 @@

#include "gen/gen.h"

void l2_parse_init(
struct l2_parse_state *state,
struct l2_lexer *lexer, struct l2_io_writer *w) {
state->lexer = lexer;
l2_bufio_writer_init(&state->writer, w);
l2_strset_init(&state->atoms);
l2_strset_init(&state->strings);
}

void l2_parse_free(struct l2_parse_state *state) {
l2_strset_free(&state->atoms);
l2_strset_free(&state->strings);
}

void l2_parse_program(struct l2_parse_state *state) {
l2_gen_stack_frame(&state->writer);
}

Laddar…
Avbryt
Spara