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
wash
27792c43b3
lang: ast: fix compiler warnings
2024-11-25 21:31:52 +00:00
wash
f9b0096dd7
lang: ast: initial implementation of class parser
2024-11-25 16:50:42 +00:00
wash
19506a299c
lang: ast: add nullptr check to ivy_ast_node_iterate
2024-11-25 16:50:12 +00:00
wash
95321d7019
lang: ast: transparently ignore linefeeds if the current parse context doesn't handle them
2024-11-25 16:49:43 +00:00
wash
dca0aba183
lang: ast: implement parsing 'use' statements
2024-11-25 16:49:07 +00:00
wash
f1032f0c8e
lang: ast: move unit-package parser state definition to c file
2024-11-25 16:48:03 +00:00
wash
f603551e26
lang: ast: fix compiler warnings
2024-11-24 21:31:49 +00:00
wash
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
wash
fbef0b6743
lang: ast: add stub functions for retrieving, printing, interating, and destroying ast nodes
2024-11-24 16:12:31 +00:00
wash
f524899da4
lang: lex: convert lexer token queue to b_queue
2024-11-24 16:12:06 +00:00
wash
ab74c882d1
lang: ast: fill in stub functions for unit and unit-package
2024-11-24 16:11:33 +00:00
wash
70aab9998b
lang: ast: add ast node size to ast_node_type
2024-11-24 11:52:59 +00:00
wash
d43e387158
lang: ast: add state size to ast_node_type
2024-11-24 11:42:43 +00:00
wash
f1ea916155
lang: ast: re-factor parser into multiple files
2024-11-24 11:11:06 +00:00
wash
a25683ddc9
lang: lex: move all lex enums to their own value ranges
2024-11-24 11:10:27 +00:00
wash
ed35011931
lang: ast: implement node, parser, and parser state management
2024-11-23 19:28:03 +00:00
wash
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
wash
5c5a2d236c
lang: ast: add stub parser functions
2024-11-23 10:15:40 +00:00
wash
6f06f42953
lang: add missing includes
2024-11-22 22:30:26 +00:00
wash
ceb9f10b66
lang: add ast node definitions
2024-11-22 21:47:37 +00:00
wash
90f96b6229
lang: lex: fix regular number characters not incrementing the token length
2024-11-21 20:05:13 +00:00
wash
92f407ac09
lang: add colour to internal print functions
2024-11-20 22:14:11 +00:00
wash
6e642b3c19
lang: lex: implement lexing of decimal numbers
2024-11-19 16:57:20 +00:00
wash
a54a232428
lang: lex: fix underscore label producing two separate tokens
2024-11-19 16:17:58 +00:00
wash
1dbe68cfeb
lang: lex: add missing symbol and keyword definitions
2024-11-19 15:57:31 +00:00
wash
7c42bf7bc9
lang: add internal debugging interface
2024-11-19 15:22:39 +00:00
wash
881f345bbe
lang: lex: move structure definitions to a separate header
2024-11-19 15:22:16 +00:00
wash
0f3328565e
lang: lex: fix identifier prefixed with underscore being tokenised incorrectly
2024-11-19 14:00:42 +00:00
wash
90a32ac1a1
lang: lex: use a dictionary to lookup keywords
2024-11-19 10:49:42 +00:00
wash
5a5b0d01d8
lang: lex: only read linefeeds up to the end of the current line buffer
2024-11-18 15:19:26 +00:00
wash
61eabd52c4
lang: lex: replace call to isnumber() with isdigit()
2024-11-17 10:58:31 +00:00
wash
104e549b32
lang: lex: implement lexing of numbers and atoms
2024-11-17 09:31:58 +00:00
wash
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
wash
102769735e
lang: lex: start implementing strings and interpolation
2024-11-16 21:30:32 +00:00
wash
7959dc26a1
Merge branch 'main' of https://github.com/washh/ivy
2024-11-16 20:40:32 +00:00
wash
00cf226078
lang: lex: implement lexing of symbols, identifiers, labels, keywords, and comments
2024-11-16 17:05:29 +00:00
wash
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
wash
6b02a86ba4
lang: implement identifier support in the lexer
2024-11-13 21:37:00 +00:00
wash
d6dea45f52
meta: rename library modules
2024-11-12 19:55:47 +00:00