1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
---
source: brush-parser/src/parser.rs
expression: "ParseResult { input, result: &command }"
---
ParseResult(
input: "\\\ncase x in\nx)\n echo y;;\nesac\\\n",
result: CaseClauseCommand(
value: W(
v: "x",
loc: Some(Loc(
start: Pos(
idx: 7,
line: 2,
col: 6,
),
end: Pos(
idx: 8,
line: 2,
col: 7,
),
)),
),
cases: [
CaseItem(
patterns: [
W(
v: "x",
loc: Some(Loc(
start: Pos(
idx: 12,
line: 3,
col: 1,
),
end: Pos(
idx: 13,
line: 3,
col: 2,
),
)),
),
],
cmd: Some(List([
Item(AndOr(
first: Pipeline(
seq: [
Simple(Simple(
w: Some(W(
v: "echo",
loc: Some(Loc(
start: Pos(
idx: 19,
line: 4,
col: 5,
),
end: Pos(
idx: 23,
line: 4,
col: 9,
),
)),
)),
suffix: Some(Suffix([
Word(W(
v: "y",
loc: Some(Loc(
start: Pos(
idx: 24,
line: 4,
col: 10,
),
end: Pos(
idx: 25,
line: 4,
col: 11,
),
)),
)),
])),
)),
],
),
), Sequence),
])),
post_action: ExitCase,
loc: Some(Loc(
start: Pos(
idx: 12,
line: 3,
col: 1,
),
end: Pos(
idx: 27,
line: 4,
col: 13,
),
)),
),
],
),
)