127 lines
2.5 KiB
Plaintext
127 lines
2.5 KiB
Plaintext
==================
|
|
Simple Match
|
|
==================
|
|
|
|
match 1 {
|
|
3 => 'foo'
|
|
2 => 'bar'
|
|
1 => 42
|
|
}
|
|
|
|
---
|
|
|
|
(root
|
|
(item
|
|
(statement
|
|
(match
|
|
(expression
|
|
(value
|
|
(integer)))
|
|
(expression
|
|
(value
|
|
(integer)))
|
|
(item
|
|
(statement
|
|
(expression
|
|
(value
|
|
(string)))))
|
|
(expression
|
|
(value
|
|
(integer)))
|
|
(item
|
|
(statement
|
|
(expression
|
|
(value
|
|
(string)))))
|
|
(expression
|
|
(value
|
|
(integer)))
|
|
(item
|
|
(statement
|
|
(expression
|
|
(value
|
|
(integer)))))))))
|
|
|
|
==================
|
|
Nested Matches
|
|
==================
|
|
|
|
match 1 {
|
|
3 => match true {
|
|
true => match (random_integer) {
|
|
0 => 42
|
|
9 => 'foo'
|
|
}
|
|
false => 0
|
|
}
|
|
2 => 'bar'
|
|
1 => 42
|
|
}
|
|
|
|
---
|
|
|
|
(root
|
|
(item
|
|
(statement
|
|
(match
|
|
(expression
|
|
(value
|
|
(integer)))
|
|
(expression
|
|
(value
|
|
(integer)))
|
|
(item
|
|
(statement
|
|
(match
|
|
(expression
|
|
(value
|
|
(boolean)))
|
|
(expression
|
|
(value
|
|
(boolean)))
|
|
(item
|
|
(statement
|
|
(match
|
|
(expression
|
|
(tool))
|
|
(expression
|
|
(value
|
|
(integer)))
|
|
(item
|
|
(statement
|
|
(expression
|
|
(value
|
|
(integer)))))
|
|
(expression
|
|
(value
|
|
(integer)))
|
|
(item
|
|
(statement
|
|
(expression
|
|
(value
|
|
(string))))))))
|
|
(expression
|
|
(value
|
|
(boolean)))
|
|
(item
|
|
(statement
|
|
(expression
|
|
(value
|
|
(integer))))))))
|
|
(expression
|
|
(value
|
|
(integer)))
|
|
(item
|
|
(statement
|
|
(expression
|
|
(value
|
|
(string)))))
|
|
(expression
|
|
(value
|
|
(integer)))
|
|
(item
|
|
(statement
|
|
(expression
|
|
(value
|
|
(integer)))))))))
|