Browse Source

stuff

master
Martin Dørum 3 years ago
parent
commit
3580a28e00
2 changed files with 23 additions and 0 deletions
  1. 9
    0
      include/lang2/parse/parse.h
  2. 14
    0
      src/parse/parse.c

+ 9
- 0
include/lang2/parse/parse.h View File

@@ -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 View File

@@ -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);
}

Loading…
Cancel
Save