141 lines
4.0 KiB
Plaintext
141 lines
4.0 KiB
Plaintext
---
|
|
source: crates/aiken-lang/src/parser/expr/when/mod.rs
|
|
description: "Code:\n\nwhen a is {\n 2 if x > 1 -> 3\n 1 | 4 | 5 -> {\n let amazing = 5\n amazing\n }\n 3 -> 9\n _ -> 4\n}\n"
|
|
---
|
|
When {
|
|
location: 0..102,
|
|
subject: Var {
|
|
location: 5..6,
|
|
name: "a",
|
|
},
|
|
clauses: [
|
|
UntypedClause {
|
|
location: 14..29,
|
|
patterns: [
|
|
Int {
|
|
location: 14..15,
|
|
value: "2",
|
|
base: Decimal {
|
|
numeric_underscore: false,
|
|
},
|
|
},
|
|
],
|
|
guard: Some(
|
|
GtInt {
|
|
location: 19..24,
|
|
left: Var {
|
|
location: 19..20,
|
|
tipo: (),
|
|
name: "x",
|
|
},
|
|
right: Constant(
|
|
Int {
|
|
location: 23..24,
|
|
value: "1",
|
|
base: Decimal {
|
|
numeric_underscore: false,
|
|
},
|
|
},
|
|
),
|
|
},
|
|
),
|
|
then: Int {
|
|
location: 28..29,
|
|
value: "3",
|
|
base: Decimal {
|
|
numeric_underscore: false,
|
|
},
|
|
},
|
|
},
|
|
UntypedClause {
|
|
location: 32..82,
|
|
patterns: [
|
|
Int {
|
|
location: 32..33,
|
|
value: "1",
|
|
base: Decimal {
|
|
numeric_underscore: false,
|
|
},
|
|
},
|
|
Int {
|
|
location: 36..37,
|
|
value: "4",
|
|
base: Decimal {
|
|
numeric_underscore: false,
|
|
},
|
|
},
|
|
Int {
|
|
location: 40..41,
|
|
value: "5",
|
|
base: Decimal {
|
|
numeric_underscore: false,
|
|
},
|
|
},
|
|
],
|
|
guard: None,
|
|
then: Sequence {
|
|
location: 51..78,
|
|
expressions: [
|
|
Assignment {
|
|
location: 51..66,
|
|
value: Int {
|
|
location: 65..66,
|
|
value: "5",
|
|
base: Decimal {
|
|
numeric_underscore: false,
|
|
},
|
|
},
|
|
pattern: Var {
|
|
location: 55..62,
|
|
name: "amazing",
|
|
},
|
|
kind: Let,
|
|
annotation: None,
|
|
},
|
|
Var {
|
|
location: 71..78,
|
|
name: "amazing",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
UntypedClause {
|
|
location: 85..91,
|
|
patterns: [
|
|
Int {
|
|
location: 85..86,
|
|
value: "3",
|
|
base: Decimal {
|
|
numeric_underscore: false,
|
|
},
|
|
},
|
|
],
|
|
guard: None,
|
|
then: Int {
|
|
location: 90..91,
|
|
value: "9",
|
|
base: Decimal {
|
|
numeric_underscore: false,
|
|
},
|
|
},
|
|
},
|
|
UntypedClause {
|
|
location: 94..100,
|
|
patterns: [
|
|
Discard {
|
|
name: "_",
|
|
location: 94..95,
|
|
},
|
|
],
|
|
guard: None,
|
|
then: Int {
|
|
location: 99..100,
|
|
value: "4",
|
|
base: Decimal {
|
|
numeric_underscore: false,
|
|
},
|
|
},
|
|
},
|
|
],
|
|
}
|