b227b27c06
lang: ast: implement more of the expression parser
2024-11-28 17:00:37 +00:00
2a33ae44a5
lang: ast: move recipient tracking from msg handler node to selector node
2024-11-28 16:58:01 +00:00
6a765c4f2b
lang: define operator arity and position
2024-11-28 16:54:48 +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
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
ad25b89af0
lang: ast: fix incorrect return types; add function to determine expression tokens
2024-11-27 12:56:10 +00:00
5f5efd8d35
lang: ast: initial implementation of msg handler and selector parsing
2024-11-26 13:08:51 +00:00
dca0aba183
lang: ast: implement parsing 'use' statements
2024-11-25 16:49:07 +00:00
f603551e26
lang: ast: fix compiler warnings
2024-11-24 21:31:49 +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
fbef0b6743
lang: ast: add stub functions for retrieving, printing, interating, and destroying ast nodes
2024-11-24 16:12:31 +00:00
f524899da4
lang: lex: convert lexer token queue to b_queue
2024-11-24 16:12:06 +00:00
f1ea916155
lang: ast: re-factor parser into multiple files
2024-11-24 11:11:06 +00:00
a25683ddc9
lang: lex: move all lex enums to their own value ranges
2024-11-24 11:10:27 +00:00
ed35011931
lang: ast: implement node, parser, and parser state management
2024-11-23 19:28:03 +00:00
b630aa009c
lang: lex: add function to check if tokens are available
...
if this function returns false, any attempt to read tokens from the lexer will cause another line of input to be retrieved from the lexer's line source.
2024-11-23 19:27:29 +00:00
5c5a2d236c
lang: ast: add stub parser functions
2024-11-23 10:15:40 +00:00
ceb9f10b66
lang: add ast node definitions
2024-11-22 21:47:37 +00:00
6e642b3c19
lang: lex: implement lexing of decimal numbers
2024-11-19 16:57:20 +00:00
1dbe68cfeb
lang: lex: add missing symbol and keyword definitions
2024-11-19 15:57:31 +00:00
7c42bf7bc9
lang: add internal debugging interface
2024-11-19 15:22:39 +00:00
104e549b32
lang: lex: implement lexing of numbers and atoms
2024-11-17 09:31:58 +00:00
f14c387a6e
lang: lex: implement state stack; make lexer structure opaque
...
the state stack is used to track whether a string is currently being read,
what kind of string it is, and whether or not we are in an interpolation
within that string.
2024-11-16 23:03:43 +00:00
102769735e
lang: lex: start implementing strings and interpolation
2024-11-16 21:30:32 +00:00
7959dc26a1
Merge branch 'main' of https://github.com/washh/ivy
2024-11-16 20:40:32 +00:00
00cf226078
lang: lex: implement lexing of symbols, identifiers, labels, keywords, and comments
2024-11-16 17:05:29 +00:00
646a851a10
meta: add msvc support
...
since bluelib is already cross-platform, this is mostly just adding
__declspec(dllexport) to the library functions.
2024-11-14 19:30:36 +00:00
6b02a86ba4
lang: implement identifier support in the lexer
2024-11-13 21:37:00 +00:00
d6dea45f52
meta: rename library modules
2024-11-12 19:55:47 +00:00