From b33ee6afa74ab1e83554d1b535d81c7df0b3fca5 Mon Sep 17 00:00:00 2001 From: lemon Date: Wed, 10 Aug 2022 04:12:33 +0200 Subject: many bugfix --- src/all.hff | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/all.hff (limited to 'src/all.hff') diff --git a/src/all.hff b/src/all.hff new file mode 100644 index 0000000..89f2b71 --- /dev/null +++ b/src/all.hff @@ -0,0 +1,51 @@ +import "libc.hff"; + +/// Macros + +defmacro assert { +(ex, s) [ + (do + if not (ex) { + fprintf(stderr, "%s:%d: assertion failed: ", #FILE, #LINE); + fprintf(stderr, "`%s'", (s)); + fprintf(stderr, "\n"); + abort(); + } + ) +] +} + +/// Types + +struct Loc { + fileid u16, + idx isize, + col int, + line int, +} + +#[lax] +enum TokT { + kw_or +} + +struct Tok { + t int, + u union { + i i64 + }, +} + +struct Decl { +} + +struct Parser { + +} + +// parse.cff +extern fn parse(P *Parser, path *const u8) [#]Decl; + +// util.cff +extern fn xmalloc(n usize) *void; +extern fn xrealloc(p *void, n usize) *void; -- cgit v1.2.3