25c1fbd44b
lang: fix a bunch of memory leaks
2025-04-17 23:15:48 +01:00
a4504c0507
lang: ast: fix source formatting
2025-04-17 21:43:51 +01:00
bd5e524241
lang: ast: replace ast node print callback with to_string
2024-12-06 20:24:08 +00:00
c23523ce14
lang: ast: implement parsing of inline and standalone if-else statements
2024-12-04 16:35:19 +00:00
1c5b23d968
lang: ast: re-write expression parser to support keyword messages
...
also adjust some parser state callbackss to better support sub-parsers returning
results to their parents.
2024-12-02 07:56:27 +00:00
ec24e2c327
lang: ast: convert RPN expression queue to ast and replace generic EXPR node with it
2024-11-28 22:06:25 +00:00
fc76fe6ad4
lang: ast: use fancy index manipulation to reduce the size of ast_node_type
2024-11-28 10:56:43 +00:00
811d3787c4
lang: ast: add a BLOCK ast node to hold lists of expressions
2024-11-28 10:26:53 +00:00
7f9894d8f9
lang: fix a bunch of compiler warnings
2024-11-27 22:45:34 +00:00
101d87e09d
lang: ast: implement simple identifier and operator expression parsing
2024-11-27 22:29:29 +00:00
ad25b89af0
lang: ast: fix incorrect return types; add function to determine expression tokens
2024-11-27 12:56:10 +00:00
cd89c20beb
lang: ast: implement control flags returned by parser functions
2024-11-26 21:30:40 +00:00
5f5efd8d35
lang: ast: initial implementation of msg handler and selector parsing
2024-11-26 13:08:51 +00:00
1e7e73db21
lang: ast: implement ast iteration
...
iteration is implementing without recursion, instead using type-specific callbacks to construct a queue of nodes to iterate through. ast priting is implemented using this functionality.
2024-11-24 20:50:12 +00:00
70aab9998b
lang: ast: add ast node size to ast_node_type
2024-11-24 11:52:59 +00:00
d43e387158
lang: ast: add state size to ast_node_type
2024-11-24 11:42:43 +00:00
f1ea916155
lang: ast: re-factor parser into multiple files
2024-11-24 11:11:06 +00:00