Commit Graph

48 Commits

Author SHA1 Message Date
e41c006ad3 lexer: Add token for ','
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 17:09:28 -05:00
d437fb258f lexer: Add token for '.struct' token
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 17:05:03 -05:00
41f5633198 parser: Use all lower-case for logs
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 17:01:28 -05:00
e9865d346e sample: Drop end comment
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 16:58:32 -05:00
b670320934 lexer: Add token for numbers
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 16:48:03 -05:00
378259a873 lexer: Add token for semicolon
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 16:31:46 -05:00
babcf9d3cf lexer: Add tokens for LBRACE and RBRACE
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 16:30:16 -05:00
48c2e7eb73 sample: Conform to style
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 16:28:07 -05:00
32b8c79fc2 parser: Document parse_ifdef()
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 16:27:56 -05:00
fc6643ff3f lexer: Handle line numbers
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 16:25:34 -05:00
54391f4c60 parser: Keep track of if directive depth
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 16:17:51 -05:00
8a47858fb7 parser: Don't return error in parse_ifndef()
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 16:17:19 -05:00
c1d128cf20 parser: Decrement ifx_depth in parse_skip_to_endif()
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 16:16:09 -05:00
869735c25f parser: Add support for '#ifndef' directive
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 15:56:25 -05:00
7708c3d89e lexer: Add token for '#ifndef' directive
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 15:55:43 -05:00
508ef51fc8 core: Add support for '#ifdef' directive
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 14:38:35 -05:00
b057cdf597 core: Increment files_compiled before compile() call
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 14:38:11 -05:00
a164a18d67 lexer: Add '#ifdef' and '#endif' tokens
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 14:37:54 -05:00
e95916f08d parser: Handle '#define' directive
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 14:20:07 -05:00
cdb4309006 core: Remove redunant whitespace
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 14:19:45 -05:00
c1a9413ef3 symbol: Make symbol result optional
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 14:19:24 -05:00
49169dda1c build: Use dep files
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 14:06:39 -05:00
b876cd7edf lexer: Putback non-identifier token
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 13:28:42 -05:00
8a54fa74ba lexer: Add scanning of '#define' directive
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 13:27:49 -05:00
52826975e8 core: Add initial symbol table impl
For now, symbol lookups are to require a linear scan. We can speed this
up in the future by adding a cache and further down the line considering
a hashmap.

Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 13:06:55 -05:00
7f0ba20dd6 parser: Handle parser scanning on pass 1
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 12:40:55 -05:00
5baa20c892 lexer: Add tokens for LPAREN + RPAREN
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 12:36:05 -05:00
44017eb06f lexer: Add token for ':'
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 12:30:57 -05:00
aa8afdd3d0 lexer: Add token for '.extern'
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-15 12:25:37 -05:00
e928d07bad lexer: Add token for '.f' [func] directive
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-14 23:37:32 -05:00
9e4c417657 lexer: Add scanning of identifiers
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-14 21:30:05 -05:00
38ae3eaa14 core: Add state-wide pointer box field
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-14 20:40:08 -05:00
eb8a6b84a2 lexer: Add putback buffer
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-14 16:57:35 -05:00
08f326440f core: Add pointer box impl
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-14 16:36:29 -05:00
9fa44ebda9 sample: Add more complete sample files
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-14 14:02:54 -05:00
9415ab38bc core: Allocate token buffer
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-14 02:04:20 -05:00
d09082e879 parser: Add preprocessing stubs
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-14 02:02:07 -05:00
e8abd2e40e state: Ensure compiler state is zeroed
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-14 02:01:51 -05:00
e8d8ef0e48 core: Add token buffer impl
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-14 00:48:57 -05:00
9e22c31a2f core: Add initial lexer and parser sources
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-14 00:11:26 -05:00
f249a12b5a core: Fix up trace_debug()
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-14 00:11:05 -05:00
33a1007556 core: Add initial token definitions
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-14 00:10:46 -05:00
743178e734 core: Add trace helper macros
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-14 00:01:52 -05:00
a8772e7d18 state: Start line numbers at 1
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-13 23:51:07 -05:00
5cbb5dc5dd docs: Add README.md
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-13 23:49:36 -05:00
ce86a7a2b1 sample: Add sample prototype
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-13 23:45:01 -05:00
e6cc68b8d4 core: Add initial state management
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-13 23:44:48 -05:00
0ddd6d6e23 initial commit
Signed-off-by: Ian Moffett <ian@mirocom.org>
2026-02-13 22:48:10 -05:00