Skip to content

Commit

Permalink
test lf code to demonstrate use of parent variables within code expre…
Browse files Browse the repository at this point in the history
…ssion when declaring child reactors
  • Loading branch information
OmerMajNition committed Nov 3, 2023
1 parent cdf2741 commit 0893ceb
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions test/C/src/ParentParamsAccessToChildInit.lf
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
target C;
preamble {=
extern int child_ids[10];
=}

reactor Child (bank_index:int = 0, parent_index:int = 0, value:int = 0) {
preamble {=
int child_ids[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
=}
reaction (startup) {=
printf("Child bank_index:%d parent_index:%d value:%d\n", self->bank_index, self->parent_index, self->value);
=}
}

reactor Parent (bank_index:int = 0, n_parents:int = 0, n_children:int = 1) {
c = new [n_children] Child (parent_index = {=self->bank_index=}, value = {=child_ids[(self->bank_index * self->n_children + bank_index) % (sizeof(child_ids) / sizeof(*child_ids))]=})
reaction (startup) {=
printf("Parent[%d/%d] bank_index:%d\n", self->bank_index + 1, self->n_parents, self->bank_index);
=}
}

main reactor ParentParamsAccessToChildInit (n_parents:int = 2, per_parent_n_children:int = 3) {
p = new [n_parents] Parent (n_parents = n_parents, n_children = per_parent_n_children);
}

0 comments on commit 0893ceb

Please sign in to comment.