mirror of
https://github.com/CatalaLang/catala.git
synced 2024-09-20 00:41:05 +03:00
51 lines
1.0 KiB
Plaintext
51 lines
1.0 KiB
Plaintext
|
|
```catala
|
|
declaration structure Str:
|
|
data x1 content (integer, date)
|
|
|
|
declaration enumeration En:
|
|
-- One content Str
|
|
-- Two content (integer, Str)
|
|
|
|
declaration str content Str equals
|
|
Str { --x1: (12, |2001-01-01|) }
|
|
|
|
declaration f2 content decimal
|
|
depends on str content Str,
|
|
en content En
|
|
equals
|
|
match en with pattern
|
|
-- One of str1:
|
|
let (a, w) equals str.x1 in
|
|
let (b, w) equals str1.x1 in
|
|
a / b
|
|
-- Two of z:
|
|
let (z1, z2) equals z in z1 / 2
|
|
|
|
declaration scope Test:
|
|
output o content (date, decimal)
|
|
|
|
scope Test:
|
|
definition o equals
|
|
(|2001-01-03|,
|
|
f2 of str, Two content (12, str))
|
|
```
|
|
|
|
```catala-test-inline
|
|
$ catala typecheck --check-invariants
|
|
[RESULT] All invariant checks passed
|
|
[RESULT] Typechecking successful!
|
|
```
|
|
|
|
```catala-test-inline
|
|
$ catala interpret -s Test
|
|
[RESULT] Computation successful! Results:
|
|
[RESULT] o = (2001-01-03, 6.0)
|
|
```
|
|
|
|
```catala-test-inline
|
|
$ catala interpret_lcalc -s Test
|
|
[RESULT] Computation successful! Results:
|
|
[RESULT] o = (2001-01-03, 6.0)
|
|
```
|