wash
dc55cfa1f8
lang: ast: propagate block terminator token to child expressions
2024-12-06 22:24:48 +00:00
wash
54c6fd7040
lang: ast: adjust and clarify the precedence of token parser callbacks
2024-12-06 22:24:08 +00:00
wash
4c36615bc1
lang: ast: implement s_terminator in block parser for all symbols
2024-12-06 21:34:26 +00:00
wash
67bfdef18a
lang: ast: misc formatting and reference fixes
2024-12-06 21:33:53 +00:00
wash
bd5e524241
lang: ast: replace ast node print callback with to_string
2024-12-06 20:24:08 +00:00
wash
ae15f228d3
lang: ast: fix finalise_property not being called when parsing a right paren
2024-12-06 20:23:46 +00:00
wash
41ef94bf3d
lang: ast: fix incorrect property parser state struct name
2024-12-06 20:23:23 +00:00
wash
1f7319458e
lang: ast: implement parsing of properties
2024-12-06 19:47:27 +00:00
wash
94c10dfbb2
lang: ast: implement parsing of f-strings
2024-12-06 13:46:58 +00:00
wash
2bd3e96427
lang: ast: implement parsing of atoms
2024-12-06 13:46:41 +00:00
wash
7ba0a05332
lang: ast: fix error when parsing message handler keyword-message selector
2024-12-06 13:23:02 +00:00
wash
d3813dc514
lang: ast: treat bang (!) as an unconsumed expression terminator
2024-12-06 13:22:33 +00:00
wash
d88d58be70
lang: ast: implement for-loop parsing
2024-12-06 10:02:31 +00:00
wash
f3cd89c72a
lang: ast: implement caret (return) parsing
2024-12-06 10:01:56 +00:00
wash
d1855afc05
lang: add missing includes; misc formatting cleanup
2024-12-06 09:59:57 +00:00
wash
5fe3231c9e
lang: ast: fix match node type specifying wrong node size
2024-12-05 22:00:23 +00:00
wash
9a4b074381
lang: ast: suppress debug output by default
2024-12-05 19:37:58 +00:00
wash
1a4d6089a1
lang: ast: implement parsing of while-loops
2024-12-05 19:29:21 +00:00
wash
e23cd801c9
lang: ast: fix keyword arg parser not inheriting subexpr depth correctly
2024-12-05 16:55:53 +00:00
wash
fc0a943ae8
lang: ast: improve cascade operator recipient resolution
...
the cascade operator now uses the precedence of the last message parsed
to determine the recipient of the subsequent messages, reducing the need
for parentheses and making the semantics of the operator more
predictable.
all messages in a cascade now inherit the precedence of the first
message in the cascade.
2024-12-05 16:53:59 +00:00
wash
7acf80f930
lang: ast: implement parsing of match statements
2024-12-04 22:22:25 +00:00
wash
0bb4a4284c
lang: ast: re-factor condition group parser
...
this parser now only handles if-else statements, and uses the state init callback argument to receive any pre-existing inline expressions
2024-12-04 21:04:13 +00:00
wash
a34b9c3710
lang: ast: fix expr_finalise not consuming the right-paren of a parenthesised expression
2024-12-04 20:18:40 +00:00
wash
84f3704db0
lang: ast: fix expr_finalise not handling complex message terminator
2024-12-04 16:41:18 +00:00
wash
c23523ce14
lang: ast: implement parsing of inline and standalone if-else statements
2024-12-04 16:35:19 +00:00
wash
051cb1d2c2
lang: ast: implement cascade operator parsing
2024-12-03 21:57:44 +00:00
wash
16ab13d738
lang: ast: re-factor expression parser into multiple files
2024-12-03 13:26:55 +00:00
wash
1204bffb4d
lang: ast: fix parsing of parenthesised sub-expressions in keyword arguments
2024-12-02 11:37:01 +00:00
wash
6d6adf5955
lang: ast: fix parsing of consecutive unary messages
2024-12-02 10:59:49 +00:00
wash
5ec3e8fcd4
lang: ast: implement parsing of complex messages
2024-12-02 10:48:16 +00:00
wash
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
wash
1c73e1d37b
lang: ast: implement parsing of right-parenthesis in expressions
2024-12-01 13:56:05 +00:00
wash
b5cb87e8df
lang: fix lots of compiler warnings/errors
2024-12-01 13:25:36 +00:00
wash
624f183de8
lang: ast: fix inconsistent indentation
2024-11-29 12:06:06 +00:00
wash
ec24e2c327
lang: ast: convert RPN expression queue to ast and replace generic EXPR node with it
2024-11-28 22:06:25 +00:00
wash
05ced5d5fc
lang: ast: define ast_node_type for some fundamental expression components
2024-11-28 22:05:37 +00:00
wash
47c11e4c10
lang: ast: add missing #include
2024-11-28 22:04:22 +00:00
wash
b227b27c06
lang: ast: implement more of the expression parser
2024-11-28 17:00:37 +00:00
wash
a37e4d23bb
lang: ast: get_token_expr_type now uses the operator table to discern expression symbols
2024-11-28 16:59:04 +00:00
wash
2a33ae44a5
lang: ast: move recipient tracking from msg handler node to selector node
2024-11-28 16:58:01 +00:00
wash
4304b94491
lang: ast: implement single-expression message handler parsing
2024-11-28 16:57:10 +00:00
wash
7530dd36a2
lang: ast: move block parser state to separate header file
...
this allows other parsers to specify what kind of token should end the
block.
2024-11-28 16:56:25 +00:00
wash
fc76fe6ad4
lang: ast: use fancy index manipulation to reduce the size of ast_node_type
2024-11-28 10:56:43 +00:00
wash
811d3787c4
lang: ast: add a BLOCK ast node to hold lists of expressions
2024-11-28 10:26:53 +00:00
wash
7f9894d8f9
lang: fix a bunch of compiler warnings
2024-11-27 22:45:34 +00:00
wash
101d87e09d
lang: ast: implement simple identifier and operator expression parsing
2024-11-27 22:29:29 +00:00
wash
ad25b89af0
lang: ast: fix incorrect return types; add function to determine expression tokens
2024-11-27 12:56:10 +00:00
wash
cd89c20beb
lang: ast: implement control flags returned by parser functions
2024-11-26 21:30:40 +00:00
wash
740df312a9
lang: ast: remove redundant parse header
2024-11-26 21:30:09 +00:00
wash
5f5efd8d35
lang: ast: initial implementation of msg handler and selector parsing
2024-11-26 13:08:51 +00:00