diff options
| author | 2022-08-08 16:06:08 +0200 | |
|---|---|---|
| committer | 2022-08-08 16:06:08 +0200 | |
| commit | fc55daf22dd890860ac9c1a0a29900977a700df2 (patch) | |
| tree | 96735ed737ae499c9dbbf54ad7bec44c6a4b6eb0 /src | |
| parent | cc325dce01101e8b488cfc7e9fddfe0f778c7e17 (diff) | |
start self hosted comler
Diffstat (limited to 'src')
| -rw-r--r-- | src/libc.hff | 7 | ||||
| -rw-r--r-- | src/main.cff | 7 | ||||
| -rw-r--r-- | src/parse.hff | 18 |
3 files changed, 32 insertions, 0 deletions
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 + }, +} |