Commit Graph

31 Commits

Author SHA1 Message Date
omicron 44254614c1 Fix parse_directive grammar rule 2025-04-02 11:36:33 +02:00
omicron 6230ade289 Add registers and fix section primitive parser 2025-04-02 11:36:33 +02:00
omicron a436f23601 Fix parser loops in parse_any and parse_consecutive 2025-04-02 11:36:33 +02:00
omicron 3e325e4abd Modify main to use the new print ast functionality 2025-04-02 11:36:33 +02:00
omicron c427adbd22 Add more grammar rules to the parser 2025-04-02 11:36:33 +02:00
omicron 1bb9425546 Add a parser combinator to parse a delimited list 2025-04-02 11:36:33 +02:00
omicron 5c620870c1 make parse_success always skip past trivia in the tokenlist 2025-04-02 11:36:33 +02:00
omicron 110a9bc31e TODO: REVIEW ME AND WRITE PROPER MESSAGE
Fix lexer issue where consuming n tokens always fails if there are n
tokens and always succeeds if they aren't n tokens
2025-04-02 11:36:33 +02:00
omicron 3af255baeb Use new validator function for parse_token calls on all primitives
Also adds new validated primitives for NODE_SECTION and NODE_REGISTER
2025-04-02 11:36:33 +02:00
omicron d13b6102c1 Fix incorrect error returned in parse_consecutive 2025-04-02 11:36:33 +02:00
omicron 4a4523a1f0 Extend parse_token to accept an optional validator function 2025-04-02 11:36:33 +02:00
omicron 2733d4fd7e Expose err_parse_no_match in parser_util.h 2025-04-02 11:36:33 +02:00
omicron cbe49b2db5 Add basic parser combinators 2025-04-02 11:36:33 +02:00
omicron b92248ec47 Add "primitive" parsers for all the semantic tokens in the lexer grammar 2025-04-02 11:36:33 +02:00
omicron 018bb6ef9a Add basic parser utilities 2025-04-02 11:36:33 +02:00
omicron 85fd507004 Add functions to skip over trivia in a tokenlist 2025-04-02 11:36:33 +02:00
omicron 0f9e1886cb Fix parse_token to add the correct information to a parse node 2025-04-02 11:36:33 +02:00
omicron d8f3838c50 Partial parser implementation 2025-04-02 11:36:33 +02:00
omicron d3881ac19d FIXME REORDER COMMIT -- Change main so it can parse the ast
FIXME THIS COMMIT NEEDS TO BE REORDERED
FIXME THIS COMMIT NEEDS TO BE REORDERED
FIXME THIS COMMIT NEEDS TO BE REORDERED
FIXME THIS COMMIT NEEDS TO BE REORDERED
2025-04-02 11:36:33 +02:00
omicron e5be1a527e TODO: REVIEW THIS FUNCTION Add function to print AST 2025-04-02 11:36:33 +02:00
omicron 935da30257 Add basic AST functionality 2025-04-02 11:35:53 +02:00
omicron 34ace36920 Add a parser grammar 2025-04-02 11:28:58 +02:00
omicron bd37ddaeea Add tokenlist, a linked list of lexer tokens
The linked list is doubly linked so the parser can look forward into it
and error reporting can look backward.

This commmit also reworks main to use the tokenlist instead of dealing
with the lexer manually.
2025-03-31 18:43:34 +02:00
omicron 42da7b1d05 Move err_allocation_failed into error.c and make it available to
everyone.
2025-03-31 18:43:34 +02:00
omicron 75fc72c35d Add action to run validation on every commit
Validate the build / validate-build (push) Successful in 23s
Adds some flags to the makefile to make it build on alpine with a
different libc
2025-03-31 14:36:15 +02:00
omicron 5cdb60d395 Remove peek function 2025-03-30 22:51:47 +02:00
omicron e5830daac9 Add documentation comments to the lexer code 2025-03-30 22:51:15 +02:00
omicron 4becfb868e Reduce excessive line length in Makefile 2025-03-30 22:07:35 +02:00
omicron 942dd444cc Fix infinite loop when lexing an invalid newline sequence 2025-03-30 22:03:12 +02:00
omicron 55f6dff543 Add basic fuzzing with afl++ 2025-03-30 22:01:53 +02:00
omicron df948b18c6 Initial commit, basic lexer structure 2025-03-30 17:45:51 +02:00