Commit Graph

316 Commits

Author SHA1 Message Date
wash 4dec09352d ivy.vim: update highlighting for properties and atoms 2025-04-10 13:04:29 +01:00
wash 2235f9c0a9 lang: change symbols for properties and atoms to -> and $ respectively 2025-04-10 13:04:12 +01:00
wash 8045872dc3 mie.vim: add highlighting for new instructions and keywords 2025-04-10 12:19:13 +01:00
wash 5cd3eff2ed mie: add lots more mie_value sub-types 2025-04-10 12:18:07 +01:00
wash ecc886c95a doc: add sample of directly calling a block rvalue 2025-04-03 10:53:27 +01:00
wash e7f6d54fa2 mie: add value type hierarchy definitions
every construct within Mie, such as constants, instructions, functions, and translation units, are sub-types of the generic mie_value struct.

mie_value will facilitate iterating through the IR, as well as converting the IR to/from different formats.
2025-04-03 10:50:41 +01:00
wash df8d9689d1 lang: add null pointer check to arith_parse_left_paren
this fixes a crash that occurred when the call-operator was used on a lone ident in an expression.
2025-04-03 10:48:56 +01:00
wash 6f9f299182 build: add mie to build system 2025-04-03 10:48:16 +01:00
wash 962c1ae9d4 doc: update IR samples to new mie sub-directory and file extension 2025-04-03 10:47:24 +01:00
wash 944ffcaea2 vim: pull IR syntax highlighting into separate vim plugin 2025-04-03 10:42:46 +01:00
wash 0fee53f194 meta: add stub folder for mie ir builder/optimiser 2025-03-26 22:28:06 +00:00
wash ba1db96be3 doc: add lambda and call-operator sample code 2025-03-26 22:27:24 +00:00
wash b6bfdd0fd1 doc: adjust package messages; add more sample code 2025-03-26 22:27:06 +00:00
wash 78b2eb23c3 lang: ast: implement () operator parsing
the () operator can be used to call lambdas in a more functional way than the standard
message-send syntax

for example, with a lambda stored in variable `x`:

	x(a:2 b:6).

is equivalent to

	x call(a:2 b:6).
2025-03-26 21:10:12 +00:00
wash 0c500dc19b lang: lex: add function for creating fake ident tokens 2025-03-26 21:09:50 +00:00
wash 02ebb5c32b vim: add syntax highlighting support for intermediate language 2025-01-27 19:19:29 +00:00
wash b4fd6a999b doc: add intermediate representation language 2025-01-27 19:19:11 +00:00
wash 251ed8c144 frontend: add coloured output for try-catch-finally AST nodes 2025-01-16 13:18:19 +00:00
wash 5017e2e736 doc: add try-catch-finally example file 2025-01-16 13:17:46 +00:00
wash 46d244a28d lang: ast: implement parsing of try-catch-finally statements 2025-01-16 13:17:08 +00:00
wash 143d61e329 lang: ast: add support for multiple block termination tokens 2025-01-16 13:15:18 +00:00
wash fa33336ed7 lang: lex: add finally keyword 2025-01-16 13:13:08 +00:00
wash 22694f2d98 doc: replace . as self-index operator with :: 2025-01-15 21:11:58 +00:00
wash f5eaac1a4c lang: fix underscopre not being treated as an expression start token 2025-01-15 21:11:19 +00:00
wash bbe1e49e55 vim: add in keyword 2025-01-15 17:40:29 +00:00
wash d50417c4b7 frontend: add command to disassemble object files 2025-01-15 17:40:01 +00:00
wash ada0ff8c85 asm: fix parts of encoded instructions being overwritten 2025-01-15 17:39:15 +00:00
wash 4561208db5 Merge branch 'main' of https://github.com/washh/ivy 2024-12-16 21:02:03 +00:00
wash bc8bfcea9d meta: add missing exe resource files 2024-12-16 20:57:30 +00:00
wash b2047d9907 vim: add new vm instructions 2024-12-15 22:37:19 +00:00
wash 3c05b362d7 doc: update with new vm instructions 2024-12-15 22:37:05 +00:00
wash b67b861ecf asm: implement instruction assembly and emission 2024-12-15 22:36:50 +00:00
wash 3ad355e58c common: add additional opcodes 2024-12-15 22:36:14 +00:00
wash 08f08df6e4 common: replace reference to b_strv_builder with b_stringstream 2024-12-15 22:35:54 +00:00
wash 10c03c4b74 asm: add instruction opcode/operand definition table 2024-12-15 19:30:34 +00:00
wash 9e75e1f16f asm: implement stub instruction emitter 2024-12-15 19:30:14 +00:00
wash 8889e58cf2 doc: replace @msg assembly items with @block 2024-12-14 21:57:55 +00:00
wash 7f5cc3426d asm: implement parsing of classes, dot-mnemonics 2024-12-14 21:57:29 +00:00
wash 83a021a862 vim: add missing assembly keywords 2024-12-14 21:56:44 +00:00
wash 5a00f271d8 doc: reformat standard library documentation 2024-12-14 21:07:20 +00:00
wash a167dd2af5 asm: fix compiler warnings 2024-12-14 21:03:44 +00:00
wash 462f67c6aa asm: implement import and instruction parsing 2024-12-14 20:26:04 +00:00
wash 724f40f19f frontend: add stub disassemble command 2024-12-13 18:08:53 +00:00
wash fa40086f0a build: treat warnings as errors 2024-12-13 17:21:25 +00:00
wash 9c125fe905 common: fix all compiler warnings 2024-12-13 17:21:14 +00:00
wash 9af971c074 asm: fix all compiler warnings 2024-12-13 17:20:58 +00:00
wash b3a9943fe5 frontend: fix all compiler warnings 2024-12-13 17:20:45 +00:00
wash 97aaffd166 doc: update assembly language syntax 2024-12-13 12:26:53 +00:00
wash 3bb94aa36e frontend: assemble: convert input file to output assembly 2024-12-13 12:26:32 +00:00
wash 5fe1a21978 asm: implement an asm parser and emitter 2024-12-13 12:26:01 +00:00