|
|
ad8ce82bad
|
doc: add match statement to sample file
|
2024-12-04 22:23:33 +00:00 |
|
|
|
7acf80f930
|
lang: ast: implement parsing of match statements
|
2024-12-04 22:22:25 +00:00 |
|
|
|
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 |
|
|
|
a34b9c3710
|
lang: ast: fix expr_finalise not consuming the right-paren of a parenthesised expression
|
2024-12-04 20:18:40 +00:00 |
|
|
|
7d2e945384
|
doc: add more inline conditional expressions to sample file
|
2024-12-04 16:41:34 +00:00 |
|
|
|
84f3704db0
|
lang: ast: fix expr_finalise not handling complex message terminator
|
2024-12-04 16:41:18 +00:00 |
|
|
|
04ee7d77c0
|
doc: add more complex expressions to sample file
|
2024-12-04 16:35:54 +00:00 |
|
|
|
5af47ce443
|
frontend: add colours to conditional AST tree debug output
|
2024-12-04 16:35:41 +00:00 |
|
|
|
c23523ce14
|
lang: ast: implement parsing of inline and standalone if-else statements
|
2024-12-04 16:35:19 +00:00 |
|
|
|
d2677e2038
|
lang: lex: add hen keyword
|
2024-12-04 16:34:40 +00:00 |
|
|
|
0836a1d827
|
doc: add sample cascade operations
|
2024-12-03 21:58:02 +00:00 |
|
|
|
051cb1d2c2
|
lang: ast: implement cascade operator parsing
|
2024-12-03 21:57:44 +00:00 |
|
|
|
16ab13d738
|
lang: ast: re-factor expression parser into multiple files
|
2024-12-03 13:26:55 +00:00 |
|
|
|
1204bffb4d
|
lang: ast: fix parsing of parenthesised sub-expressions in keyword arguments
|
2024-12-02 11:37:01 +00:00 |
|
|
|
45e2d5919a
|
doc: add even more complex expressions to sample file
|
2024-12-02 11:00:00 +00:00 |
|
|
|
6d6adf5955
|
lang: ast: fix parsing of consecutive unary messages
|
2024-12-02 10:59:49 +00:00 |
|
|
|
d5898bb7d9
|
doc: add more complex expressions to sample file
|
2024-12-02 10:48:32 +00:00 |
|
|
|
5ec3e8fcd4
|
lang: ast: implement parsing of complex messages
|
2024-12-02 10:48:16 +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 |
|
|
|
1c73e1d37b
|
lang: ast: implement parsing of right-parenthesis in expressions
|
2024-12-01 13:56:05 +00:00 |
|
|
|
48d649a403
|
doc: fix mixed indentation in sample file
|
2024-12-01 13:26:40 +00:00 |
|
|
|
b5cb87e8df
|
lang: fix lots of compiler warnings/errors
|
2024-12-01 13:25:36 +00:00 |
|
|
|
bb34e46c69
|
frontend: implement an ast node printer
|
2024-12-01 13:19:48 +00:00 |
|
|
|
c9dbc2e7e4
|
lang: re-arrange the operator table
|
2024-12-01 13:19:01 +00:00 |
|
|
|
051942e243
|
vim: add missing operators; fix highlighting of tokens after labels
|
2024-12-01 13:14:48 +00:00 |
|
|
|
624f183de8
|
lang: ast: fix inconsistent indentation
|
2024-11-29 12:06:06 +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 |
|
|
|
05ced5d5fc
|
lang: ast: define ast_node_type for some fundamental expression components
|
2024-11-28 22:05:37 +00:00 |
|
|
|
47c11e4c10
|
lang: ast: add missing #include
|
2024-11-28 22:04:22 +00:00 |
|
|
|
7aed34c875
|
lang: add some parser-internal operators
|
2024-11-28 22:01:31 +00:00 |
|
|
|
c3abcec05a
|
doc: add some more complex expressions to Simple.im
|
2024-11-28 17:00:52 +00:00 |
|
|
|
b227b27c06
|
lang: ast: implement more of the expression parser
|
2024-11-28 17:00:37 +00:00 |
|
|
|
a37e4d23bb
|
lang: ast: get_token_expr_type now uses the operator table to discern expression symbols
|
2024-11-28 16:59:04 +00:00 |
|
|
|
2a33ae44a5
|
lang: ast: move recipient tracking from msg handler node to selector node
|
2024-11-28 16:58:01 +00:00 |
|
|
|
4304b94491
|
lang: ast: implement single-expression message handler parsing
|
2024-11-28 16:57:10 +00:00 |
|
|
|
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 |
|
|
|
6a765c4f2b
|
lang: define operator arity and position
|
2024-11-28 16:54:48 +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 |
|
|
|
f04c858d9a
|
lang: lex: add base/limit markers around token type enums
|
2024-11-28 10:56:23 +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 |
|
|
|
9df8474515
|
frontend: always print lex tokens when compiling file or repl input
|
2024-11-27 22:30:42 +00:00 |
|
|
|
101d87e09d
|
lang: ast: implement simple identifier and operator expression parsing
|
2024-11-27 22:29:29 +00:00 |
|
|
|
31de937a21
|
lang: add operator precedence and associativity definitions
|
2024-11-27 22:29:01 +00:00 |
|
|
|
c7e3cea9b9
|
lang: lex: add definitions for some missing symbols and keywords
|
2024-11-27 22:28:17 +00:00 |
|
|
|
5af2692555
|
doc: document some additional operators in Person.im
|
2024-11-27 22:26:59 +00:00 |
|
|
|
a5c0606221
|
lang: lex: fix push_token not setting lex_prev_token
|
2024-11-27 12:56:39 +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 |
|
|
|
740df312a9
|
lang: ast: remove redundant parse header
|
2024-11-26 21:30:09 +00:00 |
|