diff options
| author | Miquel Sabaté Solà <mikisabate@gmail.com> | 2024-12-24 16:48:16 +0100 |
|---|---|---|
| committer | Miquel Sabaté Solà <mikisabate@gmail.com> | 2025-01-07 16:38:54 +0100 |
| commit | 9b5e5aa6d36a550bed84f85df8e1e46fcf9765e1 (patch) | |
| tree | 9748bd1059bb24fd5fb204ff9d91ae7531632beb /lib/xixanta/src/mappings/empty.toml | |
| parent | f3c6b02fb2f2957b9b896c34d05abe75263c3f60 (diff) | |
| download | tools.nes-9b5e5aa6d36a550bed84f85df8e1e46fcf9765e1.tar.gz tools.nes-9b5e5aa6d36a550bed84f85df8e1e46fcf9765e1.zip | |
Add the .repeat control statement
This is a control statement which acts similarly as .proc/.macro/.scope,
in which an inner block is allocated for it. Hence, all the previous
work from 1f8a6becc7cd ("parser: Implement block bodies") and
ec8b709fa24c ("Implement block bodies inside of the assembler") make
this one out possible, as .repeat statements don't have an identifier
that can be used for hashing.
From the parser perspective this introduction raises two new things.
First of all this control statement also needed a differentiation
between the amount of required arguments, and the allowed ones, since
there is a second optional argument to it. And second, even the
identifier is not given, we have to generate one so to add a context for
it. This was at first not needed, but introducing .repeat-only variables
means that we have to have inner contexts which need to be named somehow
so we can retrieve the context later when picking up the value for them
again.
This last thing brought the need for a new dependency: rand. This is
used to generate a random string to identify the .repeat block.
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
Diffstat (limited to 'lib/xixanta/src/mappings/empty.toml')
0 files changed, 0 insertions, 0 deletions
