From fc55daf22dd890860ac9c1a0a29900977a700df2 Mon Sep 17 00:00:00 2001 From: lemon Date: Mon, 8 Aug 2022 16:06:08 +0200 Subject: start self hosted comler --- src/libc.hff | 7 +++++++ src/main.cff | 7 +++++++ src/parse.hff | 18 ++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 src/libc.hff create mode 100644 src/main.cff create mode 100644 src/parse.hff (limited to 'src') diff --git a/src/libc.hff b/src/libc.hff new file mode 100644 index 0000000..98a6f3c --- /dev/null +++ b/src/libc.hff @@ -0,0 +1,7 @@ +! stdio.h +struct FILE; +extern static stdin FILE, + stdout FILE, + stderr FILE; +extern fn printf(fmt *const u8, ...) void; +extern fn fprintf(fp *FILE, fmt *const u8, ...) void; diff --git a/src/main.cff b/src/main.cff new file mode 100644 index 0000000..1dbbbee --- /dev/null +++ b/src/main.cff @@ -0,0 +1,7 @@ +import "libc.hff"; +import "parse.hff"; + +extern fn main(argc int, argv **u8) int { + let t Tok = { TokT:kw_or, { .i: 1 } }; + printf("%d\n", TokT:kw_or); +} diff --git a/src/parse.hff b/src/parse.hff new file mode 100644 index 0000000..463dd26 --- /dev/null +++ b/src/parse.hff @@ -0,0 +1,18 @@ +struct Loc { + fileid u16, + idx isize, + col int, + line int, +} + +#[lax] +enum TokT { + kw_or +} + +struct Tok { + t int, + u union { + i i64 + }, +} -- cgit v1.2.3