catala/tests/test_variable_state/good/subscope.catala_en
2023-04-14 17:03:15 +02:00

51 lines
1.1 KiB
Plaintext

## Test
```catala
declaration scope A:
context output foo content integer
state bar
state baz
state fizz
declaration scope B:
output foofoo content integer
state bar
state baz
b scope A
output foofoofoo content integer
scope A:
definition foo state bar equals 1
definition foo state baz equals foo + 1
definition foo state fizz equals foo + 1
scope B:
definition foofoo state bar equals 3
definition foofoo state baz equals foofoo + 1
definition b.foo equals foofoo
definition foofoofoo equals b.foo
```
```catala-test-inline
$ catala Scopelang -s A
let scope A (foo_bar: integer|context) (foo_baz: integer|internal)
(foo_fizz: integer|internal|output) =
let foo_bar : integer = reentrant or by default
⟨true ⊢ ⟨ ⟨true ⊢ 1⟩ | false ⊢ ∅ ⟩⟩;
let foo_baz : integer =
⟨true ⊢ ⟨ ⟨true ⊢ foo_bar +! 1⟩ | false ⊢ ∅ ⟩⟩;
let foo_fizz : integer =
⟨true ⊢ ⟨ ⟨true ⊢ foo_baz +! 1⟩ | false ⊢ ∅ ⟩⟩
```
```catala-test-inline
$ catala Interpret -s B
[RESULT] Computation successful! Results:
[RESULT] foofoo = 4
[RESULT] foofoofoo = 6
```