-
7cefc3564d
Implement one immediate label reference operand
main
omicron
2025-04-24 13:30:17 +02:00
-
c848995ad6
Implement two pass encoding
omicron
2025-04-22 02:08:38 +02:00
-
5272fdb227
Add more values to the ast to facilitate encoding
omicron
2025-04-18 12:30:51 +02:00
-
0acc3f27f3
Update symbols tests for new API
omicron
2025-04-22 17:35:39 +02:00
-
9c6b69e187
Symbol table now keeps track of label statements
omicron
2025-04-18 02:31:21 +02:00
-
530e3fb423
Fix parse_memory_expression to use parse_label_reference
omicron
2025-04-17 23:28:44 +02:00
-
ea5164e584
Make compiler-rt version match the clang version in the gitea action
omicron
2025-04-17 16:35:23 +02:00
-
bf3fd83b64
Let the release build error on warnings
omicron
2025-04-17 15:18:28 +02:00
-
6f78d26ea1
Change the n argument of lexer_shift_buffer to size_t from int
omicron
2025-04-17 15:12:56 +02:00
-
1a79bf050e
Remove unused ast_node_free_value
omicron
2025-04-17 15:10:36 +02:00
-
26cb374c1d
Update gitignore, add /build and remove old build artifacts
omicron
2025-04-17 15:09:29 +02:00
-
d97cfb97be
Implement printing the encoding in main
omicron
2025-04-16 14:31:09 +02:00
-
99c9dcd985
Incomplete second pass encoding
omicron
2025-04-16 00:21:41 +02:00
-
7e9c1bfda2
Add bytes type and tests
omicron
2025-04-16 21:34:43 +02:00
-
d8ae126e9a
Add opcode encoding value for NODE_INSTRUCTION entries in the AST
omicron
2025-04-16 00:20:35 +02:00
-
68dcd9dcce
Add first encoding pass
omicron
2025-04-15 00:01:40 +02:00
-
dcf90b72e0
Add register and number values to AST nodes
omicron
2025-04-14 23:55:09 +02:00
-
2cf69f5e18
Add initial limited opcode data
omicron
2025-04-13 20:35:25 +02:00
-
d59559d327
Add registers data table
omicron
2025-04-13 15:17:08 +02:00
-
ac14925a0a
Add symbols tests
omicron
2025-04-08 20:38:08 +02:00
-
2a7bb479ac
initial symbol table implementation
omicron
2025-04-03 03:43:56 +02:00
-
ef22c0b620
Add .import and .export to the input test file
omicron
2025-04-07 10:52:49 +02:00
-
8c0e9926c5
Make main properly return with failure on parsing errors
omicron
2025-04-07 10:50:57 +02:00
-
d3d69b82d5
Add .import and .export directive to the grammar and parser
omicron
2025-04-07 10:49:57 +02:00
-
dc210e409c
fix parse_immediate to accept label_reference instead of identifier
omicron
2025-04-07 12:50:39 +02:00
-
00272d69bf
Add regression test for parse zero operands at eof
omicron
2025-04-16 13:16:55 +02:00
-
2385d38608
Prune the parse tree of NODE_NEWLINE after parsing succeeds
omicron
2025-04-16 13:01:02 +02:00
-
242fd9baa5
Fix grammar not being able to disambiguate some instructions
omicron
2025-04-16 12:34:44 +02:00
-
1574ec6249
Fix parse_consecutive behavior when the token stream runs out
omicron
2025-04-16 12:13:02 +02:00
-
92c63092a1
Add regression test for trivia at the head of tokenlist
omicron
2025-04-09 01:17:09 +02:00
-
5560de2904
Make sure parse skips past initial trivia in the tokenlist
omicron
2025-04-09 01:15:51 +02:00
-
2bea87b39a
Run tests in the validate gitea action
omicron
2025-04-06 09:19:01 +02:00
-
2eb7b3c2f1
use llvm to generate test coverage
omicron
2025-04-05 21:46:09 +02:00
-
f1f4c93a8e
Fix bug in lexer_next_number not correctly tracking character number
omicron
2025-04-04 19:45:34 +02:00
-
27099c9899
Add initial unit tests
omicron
2025-04-04 04:07:40 +02:00
-
3fead8017b
Rename lexer errors
omicron
2025-04-05 00:51:50 +02:00
-
af66790cff
Clean up error definitions, location and expose them in the headers
omicron
2025-04-04 12:23:35 +02:00
-
cb8768b1d0
Make clangd aware of the _POSIX_C_SOURCE define in the build system
omicron
2025-04-04 19:48:24 +02:00
-
1571c52012
Add some building documentation that clarifies the make targets
omicron
2025-04-04 02:17:23 +02:00
-
0f9ced8eb1
Rework the build system to be more modular
omicron
2025-04-03 23:14:56 +02:00
-
3db9fd9b8f
Added object file format spec
object_format
omicron
2025-04-03 00:49:31 +02:00
-
-
0d3881f680
Update the test input file to contain all AST nodes
omicron
2025-04-02 11:19:35 +02:00
-
5ea942024f
add functionality to main to parse and print the ast
omicron
2025-04-01 15:03:36 +02:00
-
b4757e008c
Add parse_result_wrap to wrap a result with another parent node
omicron
2025-04-02 20:33:36 +02:00
-
b70b6896bf
Partial parser implementation
omicron
2025-04-01 17:16:21 +02:00
-
6ca7bb3661
Fix incorrect size comparison in lexer_consume_n
omicron
2025-04-01 23:36:08 +02:00
-
d424c0f886
Add a parser combinator to parse a delimited list
omicron
2025-04-01 23:39:48 +02:00
-
c66489dd90
Add basic parser combinators
omicron
2025-04-01 20:05:35 +02:00
-
44fa66c2b7
Add "primitive" parsers for all the non-trivia tokens in the lexer grammar
omicron
2025-04-01 20:03:53 +02:00
-
c48adb1306
Add basic parser utilities
omicron
2025-04-01 20:03:28 +02:00
-
5fb6ebef28
Add functions to skip over trivia in a tokenlist
omicron
2025-04-01 19:55:00 +02:00
-
bbdcad024f
Add function to print the AST
omicron
2025-04-01 23:54:31 +02:00
-
935da30257
Add basic AST functionality
omicron
2025-03-31 16:31:42 +02:00
-
34ace36920
Add a parser grammar
omicron
2025-03-31 14:47:58 +02:00
-
bd37ddaeea
Add tokenlist, a linked list of lexer tokens
omicron
2025-03-31 18:38:46 +02:00
-
42da7b1d05
Move err_allocation_failed into error.c and make it available to everyone.
omicron
2025-03-31 15:08:29 +02:00
-
75fc72c35d
Add action to run validation on every commit
omicron
2025-03-30 23:34:12 +02:00
-
5cdb60d395
Remove peek function
omicron
2025-03-30 22:51:47 +02:00
-
e5830daac9
Add documentation comments to the lexer code
omicron
2025-03-30 22:51:15 +02:00
-
4becfb868e
Reduce excessive line length in Makefile
omicron
2025-03-30 22:07:35 +02:00
-
942dd444cc
Fix infinite loop when lexing an invalid newline sequence
omicron
2025-03-30 22:03:12 +02:00
-
55f6dff543
Add basic fuzzing with afl++
omicron
2025-03-30 22:01:53 +02:00
-
df948b18c6
Initial commit, basic lexer structure
omicron
2025-03-30 17:45:51 +02:00