Commit Graph

  • 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