feat: Cleanup map/rmap syntax

This commit is contained in:
overflowerror 2024-05-17 15:27:27 +02:00
parent 2884890abc
commit 481eafda5d
11 changed files with 15 additions and 14 deletions

View file

@ -144,17 +144,18 @@ while: WHILE expr block
}
;
map: MAP OPENING_BRACKETS ID COMMA ID IN ID CLOSING_BRACKETS block
map: MAP ID COMMA ID IN ID block
{
$$ = map_statement_new($3, $5, $7, $9, false);
$$ = map_statement_new($2, $4, $6, $7, false);
}
| RMAP OPENING_BRACKETS ID COMMA ID IN ID CLOSING_BRACKETS block
| RMAP ID COMMA ID IN ID block
{
$$ = map_statement_new($3, $5, $7, $9, true);
$$ = map_statement_new($2, $4, $6, $7, true);
}
;
block: OPENING_BRACES stats CLOSING_BRACES
{
$$ = $2;

View file

@ -1,6 +1,6 @@
var list = []{'f', 'o', 'o', 'b', 'a', 'r'};
map(_, value in list) {
map _, value in list {
print(value);
print('\n');
}

View file

@ -1,5 +1,5 @@
var list = []{0, 0, 0, 0};
map(index, _ in list) {
map index, _ in list {
print(to_str(index), '\n');
}

View file

@ -1,6 +1,6 @@
var list = []{'e', 'n', 'n'};
map(_, value in list) {
map _, value in list {
value = (value + 1);
}

View file

@ -1,6 +1,6 @@
var s = "hello, world!\n";
map(_, c in s) {
map _, c in s {
if ((c >= 'a') && (c <= 'z')) {
c = ((c - 'a') + 'A');
}

View file

@ -2,7 +2,7 @@ var a = []{'a', 'b', 'c'};
var extract = 0;
map(i, v in a) {
map i, v in a {
if (i == 1) {
extract = v;
}

View file

@ -1,6 +1,6 @@
var list = []{'f', 'o', 'o', 'b', 'a', 'r'};
rmap(_, value in list) {
rmap _, value in list {
print(value);
print('\n');
}

View file

@ -1,5 +1,5 @@
var list = []{0, 0, 0, 0};
rmap(index, _ in list) {
rmap index, _ in list {
print(to_str(index), '\n');
}

View file

@ -1,6 +1,6 @@
var list = []{'e', 'n', 'n'};
rmap(_, value in list) {
rmap _, value in list {
value = (value + 1);
}

View file

@ -1,6 +1,6 @@
var s = "hello, world!\n";
rmap(_, c in s) {
rmap _, c in s {
if ((c >= 'a') && (c <= 'z')) {
c = ((c - 'a') + 'A');
}

View file

@ -2,7 +2,7 @@ var a = []{'a', 'b', 'c'};
var extract = 0;
rmap(i, v in a) {
rmap i, v in a {
if (i == 1) {
extract = v;
}