0d628c8df3
docs: Add initial language spec
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-03-17 01:14:49 -04:00
99f52e02b2
core: include sys/types.h
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-24 22:35:44 -05:00
4325c809a1
lexer: add token for 'break' keyword
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-24 22:32:54 -05:00
fa4f8f7825
core+backend: Add support for label sections
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-23 13:56:24 -05:00
c3bbf59303
core: Allow assembly only outputs
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-18 09:37:32 -05:00
29479b5ac6
core: Assemble with NASM
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-18 09:28:32 -05:00
9645df1e27
core: Bump version to v0.0.2
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-17 09:22:57 -05:00
9be4ce179e
parser+codegen: Add support for loops
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-17 01:49:22 -05:00
197965f173
backend: Add interface to generate branch to label
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-17 01:48:58 -05:00
011cfaee11
sample: Update func.rifle
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-17 01:11:15 -05:00
aae74f06ed
lexer: Add token for 'loop' keyword
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-17 01:10:48 -05:00
271c9750ea
parser: Prevent double rets
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-16 14:29:06 -05:00
316d49e132
backend/x86_64: Insert 'ret' in mu_gen_retimm()
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-16 14:28:37 -05:00
0a8a7cddd0
lexer: Handle differentation between zero and prefix
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-16 14:20:23 -05:00
68e7f41181
lexer: Handle '_' digit seperator properly
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-16 14:19:58 -05:00
0317c6a4ca
lexer: Putback non-numerical token in number scanning
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-16 14:01:19 -05:00
3e8a45a156
parser+codegen: Add support for 'return' statement
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-16 13:49:15 -05:00
3d6cc301f3
core: Add data_raw_type() helper macro
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-16 13:48:56 -05:00
222b96f20e
backend+mu: Add helper to return immediate values
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-16 13:48:00 -05:00
38fab3f7e5
lexer: Remove unneeded isxdigit() check
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-16 13:45:49 -05:00
04b253ce26
lexer: Add token for 'return' keyword
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-16 13:12:21 -05:00
e90de9ced5
parser: Move function scope check to parse_func()
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-16 13:11:50 -05:00
fb0303c7a6
parser+lexer: Add proper counting of line numbers
...
Since the compiler is two-pass, having the incrementation performed in
the lexer would result in extraneous incrementations during the
preprocessing phase. We want line numbers for diagnostics during the
parsing phase and therefore a fix would be to have the parser filter
newlines out itself.
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-16 12:12:30 -05:00
0d273de7cc
core: Disallow nested functions
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-16 12:05:22 -05:00
1c2eed0a0d
core: Associate data type with symbol, not ast node
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-16 03:39:07 -05:00
995f40aa85
build: Add rifleout.asm to .gitignore
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-15 23:12:28 -05:00
07db3ee834
parser+codegen: Handle function epilogue
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-15 23:11:52 -05:00
87f0cfcdb0
backend: Add interface to generate ret instruction
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-15 23:11:37 -05:00
ae1a50e78b
parser: Remove redundant newline
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-15 23:11:18 -05:00
e2c729a0f9
parser+backend: Add support for public symbols
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-15 22:58:06 -05:00
022770df16
lexer: Add token for '.pub' keyword
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-15 22:57:39 -05:00
8d0c0520b5
codegen: Return 0 in cg_resolve_node();
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-15 22:46:35 -05:00
154a71b1f6
core: Add initial codegen sources
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-15 22:17:40 -05:00
1db0ed78e1
core: Add 'void' data type
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-15 21:39:40 -05:00
009bdcf281
parser: Add function parsing groundwork
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-15 21:31:57 -05:00
9b68588153
core: Add scope management
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-15 21:30:54 -05:00
695f408369
parser: Add newline to end of utok()
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-15 21:11:25 -05:00
1ad72ea5a2
core: Add program data types
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-15 18:08:20 -05:00
a2a866a010
core: Add abstract syntax tree helpers
...
Signed-off-by: Ian Moffett <ian@mirocom.org >
2026-02-15 17:15:40 -05:00
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