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
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
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
942dd444cc
Fix infinite loop when lexing an invalid newline sequence
2025-03-30 22:03:12 +02:00
omicron
df948b18c6
Initial commit, basic lexer structure
2025-03-30 17:45:51 +02:00