Jarvis Carroll
17f635af61
Parse long hex escape codes
...
This doesn't work super consistently in the compiler, for codepoints above 127, but it should work fine for us, so, oh well!
2026-02-03 00:41:00 +00:00
Jarvis Carroll
272ed01fdc
Singleton record/tuple parsing.
...
Records are a simple case to detect and handle correctly.
Tuples took an entire rewrite of the little tuple parsing bit of the code.
2026-01-30 08:12:32 +00:00
Jarvis Carroll
49cd8b6687
Parse strings
2026-01-29 06:18:06 +00:00
Jarvis Carroll
966b4b2748
Calculate scalar values during lexing
...
This saves some effort and probably some performance for things like integers, but I'm mainly doing this in anticipation of string literals, because it would just be ridiculous to read code that lexes string literals twice.
2026-01-29 04:06:19 +00:00
Jarvis Carroll
fe182a5233
Handle underscores in integers/bytes
...
This forces us to test for alpha/num/hex enough times that it's now worth making macros for these things.
2026-01-29 03:03:11 +00:00
Jarvis Carroll
f1696e2b9e
Bytes lexing
...
I don't handle underscores in bytes correctly... Nor in integers, for that matter.
2026-01-29 02:01:16 +00:00
Jarvis Carroll
2bf384ca82
Infer correct values for tests automatically
...
Now tests compare the literal parser against the output of the
compiler. The little example contracts we are compiling for the
AACI already had the FATE value in them, in the form of the
instruction
{'RETURNR', {immediate, FateValue}}
so we just extract that and use it for the tests.
2026-01-27 06:42:55 +00:00
Jarvis Carroll
4f2a3c6c6f
Variant parsing
2026-01-23 06:18:39 +00:00
Jarvis Carroll
7df04a81be
Tuple parsing
2026-01-23 02:45:23 +00:00
Jarvis Carroll
6f02d4c4e6
Record parsing
2026-01-23 00:48:06 +00:00
Jarvis Carroll
56e63051bc
Map parsing
2026-01-16 05:46:27 +00:00
Jarvis Carroll
3f1c9bd626
List parsing
...
Slowly chipping away at cases...
2026-01-15 09:38:04 +00:00
Jarvis Carroll
97e32574c4
set up parsing structure
...
We tokenize, and then do the simplest possible recursive descent.
We don't want to evaluate anything, so infix operators are out,
meaning no shunting yard or tree rearranging or LR(1) shenanigans
are necessary, just write the code.
If we want to 'peek', just take the next token, and pass it around
from that point on, until it can actually be consumed.
2026-01-15 01:52:30 +00:00
Jarvis Carroll
6f5525afcf
Rename get_function_signature
...
hz_aaci:aaci_get_function_signature is a bit redundant.
2026-01-15 01:50:50 +00:00
Jarvis Carroll
4f1958b210
use lists:unzip/1
...
Just a little thing I noticed could be improved.
2026-01-13 01:19:29 +00:00
Jarvis Carroll
3da9bd570b
split coerce/3 into two functions
...
Also renamed coerce_bindings to erlang_args_to_fate, to match.
2026-01-09 04:39:58 +00:00
Jarvis Carroll
d2163c1ff8
split AACI out of hz.erl
...
So far the interface to hz.erl is mostly unchanged, apart from prepare_aaci/1
Maybe prepare_aaci should be re-exported, but using it is exactly in line with the
'inconvenient but more flexible primitives' that hz_aaci.erl is meant to represent,
so, maybe that is a fine place to have to go for it, dunno.
2026-01-07 09:40:55 +00:00
af1639d47b
Fix missed version doodoo and patch
2025-12-23 13:55:11 +09:00
cb36bad74b
Verup patch
2025-12-23 13:50:50 +09:00
a35118db7a
Add naked reads to read/1
2025-12-23 13:48:12 +09:00
8b6085dee8
Make edoc happy
2025-12-22 11:52:29 +09:00
ebb84b39a1
Verup
2025-12-22 11:17:01 +09:00
2f93c4d503
Fix docs
2025-12-22 11:14:13 +09:00
b542205c0e
Merge branch 'master' into formatters
2025-12-22 10:09:21 +09:00
d1cae68ce7
Merge pull request 'grids2' ( #11 ) from grids2 into master
...
Reviewed-on: #11
2025-12-22 10:04:37 +09:00
e10ef8a460
Remember to wrap final values
2025-12-20 20:38:14 +09:00
79eb881208
Formatters work. Still need to write random testers.
2025-12-20 20:22:20 +09:00
9ac442ffb4
WIP
2025-12-20 17:26:46 +09:00
401f8dec7a
WIP
2025-12-20 04:52:42 +09:00
81fef99d9c
WIP
2025-12-20 04:23:34 +09:00
23137a677e
WIP
2025-12-20 01:50:15 +09:00
b219d0f784
Add "metric" formatting
2025-12-20 00:56:13 +09:00
f5e955b583
Allow for a 'none' amount to prompt users for an amount.
2025-12-19 21:34:06 +09:00
1978ca59b3
Update specs
2025-12-18 10:37:06 +09:00
4ee6609111
Add lookup interface in hz
2025-12-18 09:06:53 +09:00
aeb78eab38
Add AACI caching
2025-12-18 09:03:21 +09:00
88c6f6dcc7
Spend/Transfer URLs
2025-12-18 04:13:01 +09:00
d5ff77b278
WIP
2025-12-12 09:53:24 +09:00
5a145207da
WIP
2025-12-11 17:13:02 +09:00
11730de24a
WIP
2025-12-05 17:38:57 +09:00
975325db14
WIP
2025-12-02 19:40:33 +09:00
beed46a38b
WIP: omg stuff
2025-12-02 15:22:13 +09:00
e4e6e35bf8
WIP: Fix remaining cases
2025-12-01 18:36:50 +09:00
7393a02de2
WIP: Moving formatters to HZ
2025-12-01 12:06:05 +09:00
751c099a44
Merge branch 'master' into bin_sig
2025-10-29 15:53:03 +09:00
be0607f7c1
Remove dinkus file
2025-10-29 15:52:36 +09:00
c5349f5736
Fix silly nodes report bug
2025-10-29 15:35:05 +09:00
7252ecd40b
spacing
2025-10-25 13:52:05 +09:00
e8febcf8d5
Finally implement the "sticky" chain node
2025-10-25 13:45:40 +09:00
8a42f4a7a3
verup
2025-10-25 12:49:29 +09:00