2021-09-01 14:59:04 +00:00
|
|
|
=====================================
|
|
|
|
empty
|
|
|
|
=====================================
|
|
|
|
|
|
|
|
()
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
(source
|
|
|
|
(block))
|
|
|
|
|
|
|
|
=====================================
|
|
|
|
single expression
|
|
|
|
=====================================
|
|
|
|
|
|
|
|
(1)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
(source
|
|
|
|
(block
|
|
|
|
(integer)))
|
|
|
|
|
|
|
|
=====================================
|
|
|
|
multiple expressions separated by newline
|
|
|
|
=====================================
|
|
|
|
|
|
|
|
(
|
|
|
|
1
|
|
|
|
2
|
|
|
|
)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
(source
|
|
|
|
(block
|
|
|
|
(integer)
|
|
|
|
(integer)))
|
|
|
|
|
|
|
|
=====================================
|
|
|
|
multiple expressions separated by semicolon
|
|
|
|
=====================================
|
|
|
|
|
|
|
|
(1;2)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
(source
|
|
|
|
(block
|
|
|
|
(integer)
|
|
|
|
(integer)))
|
|
|
|
|
|
|
|
=====================================
|
|
|
|
multiple expressions separated by mixed separators
|
|
|
|
=====================================
|
|
|
|
|
|
|
|
(
|
|
|
|
1
|
|
|
|
|
|
|
|
;
|
|
|
|
|
|
|
|
2
|
|
|
|
)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
(source
|
|
|
|
(block
|
|
|
|
(integer)
|
|
|
|
(integer)))
|
|
|
|
|
|
|
|
=====================================
|
|
|
|
leading semicolon
|
|
|
|
=====================================
|
|
|
|
|
|
|
|
(;1;2)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
(source
|
|
|
|
(block
|
|
|
|
(integer)
|
|
|
|
(integer)))
|
|
|
|
|
|
|
|
=====================================
|
|
|
|
trailing semicolon
|
|
|
|
=====================================
|
|
|
|
|
|
|
|
(1;2;)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
(source
|
|
|
|
(block
|
|
|
|
(integer)
|
|
|
|
(integer)))
|
2021-09-25 00:23:37 +00:00
|
|
|
|
|
|
|
=====================================
|
2021-09-28 18:40:20 +00:00
|
|
|
stab clause / multiple clauses
|
2021-09-25 00:23:37 +00:00
|
|
|
=====================================
|
|
|
|
|
|
|
|
(x -> x; y -> y
|
|
|
|
z -> z)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
(source
|
|
|
|
(block
|
|
|
|
(stab_clause
|
|
|
|
(arguments
|
|
|
|
(identifier))
|
|
|
|
(body
|
|
|
|
(identifier)))
|
|
|
|
(stab_clause
|
|
|
|
(arguments
|
|
|
|
(identifier))
|
|
|
|
(body
|
|
|
|
(identifier)))
|
|
|
|
(stab_clause
|
|
|
|
(arguments
|
|
|
|
(identifier))
|
|
|
|
(body
|
|
|
|
(identifier)))))
|
2021-09-28 18:40:20 +00:00
|
|
|
|
|
|
|
=====================================
|
|
|
|
stab clause / multiple arguments
|
|
|
|
=====================================
|
|
|
|
|
|
|
|
(x, y, z -> x)
|
|
|
|
((x, y, z) -> x)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
(source
|
|
|
|
(block
|
|
|
|
(stab_clause
|
|
|
|
(arguments
|
|
|
|
(identifier)
|
|
|
|
(identifier)
|
|
|
|
(identifier))
|
|
|
|
(body
|
|
|
|
(identifier))))
|
|
|
|
(block
|
|
|
|
(stab_clause
|
|
|
|
(arguments
|
|
|
|
(identifier)
|
|
|
|
(identifier)
|
|
|
|
(identifier))
|
|
|
|
(body
|
|
|
|
(identifier)))))
|
|
|
|
|
|
|
|
=====================================
|
|
|
|
stab clause / guard
|
|
|
|
=====================================
|
|
|
|
|
|
|
|
(x, y when x == y -> 1)
|
|
|
|
((x, y when x == y -> 1))
|
|
|
|
((x, y when x == y) -> 1)
|
|
|
|
(x, y when x, z -> 1)
|
|
|
|
((x, y when x, z -> 1))
|
|
|
|
((x, y when x, z) -> 1)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
(source
|
|
|
|
(block
|
|
|
|
(stab_clause
|
|
|
|
(binary_operator
|
|
|
|
(arguments
|
|
|
|
(identifier)
|
|
|
|
(identifier))
|
|
|
|
(binary_operator
|
|
|
|
(identifier)
|
|
|
|
(identifier)))
|
|
|
|
(body
|
|
|
|
(integer))))
|
|
|
|
(block
|
|
|
|
(block
|
|
|
|
(stab_clause
|
|
|
|
(binary_operator
|
|
|
|
(arguments
|
|
|
|
(identifier)
|
|
|
|
(identifier))
|
|
|
|
(binary_operator
|
|
|
|
(identifier)
|
|
|
|
(identifier)))
|
|
|
|
(body
|
|
|
|
(integer)))))
|
|
|
|
(block
|
|
|
|
(stab_clause
|
|
|
|
(arguments
|
|
|
|
(identifier)
|
|
|
|
(binary_operator
|
|
|
|
(identifier)
|
|
|
|
(binary_operator
|
|
|
|
(identifier)
|
|
|
|
(identifier))))
|
|
|
|
(body
|
|
|
|
(integer))))
|
|
|
|
(block
|
|
|
|
(stab_clause
|
|
|
|
(arguments
|
|
|
|
(identifier)
|
|
|
|
(binary_operator
|
|
|
|
(identifier)
|
|
|
|
(identifier))
|
|
|
|
(identifier))
|
|
|
|
(body
|
|
|
|
(integer))))
|
|
|
|
(block
|
|
|
|
(block
|
|
|
|
(stab_clause
|
|
|
|
(arguments
|
|
|
|
(identifier)
|
|
|
|
(binary_operator
|
|
|
|
(identifier)
|
|
|
|
(identifier))
|
|
|
|
(identifier))
|
|
|
|
(body
|
|
|
|
(integer)))))
|
|
|
|
(block
|
|
|
|
(stab_clause
|
|
|
|
(arguments
|
|
|
|
(identifier)
|
|
|
|
(binary_operator
|
|
|
|
(identifier)
|
|
|
|
(identifier))
|
|
|
|
(identifier))
|
|
|
|
(body
|
|
|
|
(integer)))))
|