436 lines
22 KiB
Plaintext
436 lines
22 KiB
Plaintext
---
|
|
source: src/tests/parser.rs
|
|
expression: nodes
|
|
---
|
|
[
|
|
Ok(
|
|
Node {
|
|
class: Conjunction {
|
|
elements: [
|
|
ConjunctNode {
|
|
cmd: Node {
|
|
class: IfNode {
|
|
cond_nodes: [
|
|
CondNode {
|
|
cond: Node {
|
|
class: Pipeline {
|
|
cmds: [
|
|
Node {
|
|
class: Command {
|
|
assignments: [],
|
|
argv: [
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 3..6,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
IS_CMD,
|
|
),
|
|
},
|
|
],
|
|
},
|
|
flags: NdFlags(
|
|
0x0,
|
|
),
|
|
redirs: [],
|
|
tokens: [
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 3..6,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
IS_CMD,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Sep,
|
|
span: Span {
|
|
range: 6..8,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
],
|
|
},
|
|
],
|
|
pipe_err: false,
|
|
},
|
|
flags: NdFlags(
|
|
0x0,
|
|
),
|
|
redirs: [],
|
|
tokens: [
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 3..6,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
IS_CMD,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Sep,
|
|
span: Span {
|
|
range: 6..8,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
],
|
|
},
|
|
body: [
|
|
Node {
|
|
class: Pipeline {
|
|
cmds: [
|
|
Node {
|
|
class: Command {
|
|
assignments: [],
|
|
argv: [
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 13..17,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
IS_CMD | BUILTIN,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 18..21,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
],
|
|
},
|
|
flags: NdFlags(
|
|
0x0,
|
|
),
|
|
redirs: [],
|
|
tokens: [
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 13..17,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
IS_CMD | BUILTIN,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 18..21,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Sep,
|
|
span: Span {
|
|
range: 21..23,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
],
|
|
},
|
|
],
|
|
pipe_err: false,
|
|
},
|
|
flags: NdFlags(
|
|
0x0,
|
|
),
|
|
redirs: [],
|
|
tokens: [
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 13..17,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
IS_CMD | BUILTIN,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 18..21,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Sep,
|
|
span: Span {
|
|
range: 21..23,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
else_block: [],
|
|
},
|
|
flags: NdFlags(
|
|
0x0,
|
|
),
|
|
redirs: [
|
|
Redir {
|
|
io_mode: File {
|
|
tgt_fd: 1,
|
|
file: File {
|
|
fd: 3,
|
|
path: "/home/pagedmov/Coding/projects/rust/fern/file.txt",
|
|
read: false,
|
|
write: true,
|
|
},
|
|
},
|
|
class: Output,
|
|
},
|
|
],
|
|
tokens: [
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 0..2,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
KEYWORD,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 3..6,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
IS_CMD,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Sep,
|
|
span: Span {
|
|
range: 6..8,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 8..12,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
KEYWORD,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 13..17,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
IS_CMD | BUILTIN,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 18..21,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Sep,
|
|
span: Span {
|
|
range: 21..23,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 23..25,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
KEYWORD,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Redir,
|
|
span: Span {
|
|
range: 26..27,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 28..36,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
],
|
|
},
|
|
operator: Null,
|
|
},
|
|
],
|
|
},
|
|
flags: NdFlags(
|
|
0x0,
|
|
),
|
|
redirs: [],
|
|
tokens: [
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 0..2,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
KEYWORD,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 3..6,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
IS_CMD,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Sep,
|
|
span: Span {
|
|
range: 6..8,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 8..12,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
KEYWORD,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 13..17,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
IS_CMD | BUILTIN,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 18..21,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Sep,
|
|
span: Span {
|
|
range: 21..23,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 23..25,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
KEYWORD,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Redir,
|
|
span: Span {
|
|
range: 26..27,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
Tk {
|
|
class: Str,
|
|
span: Span {
|
|
range: 28..36,
|
|
source: "if foo; then echo bar; fi > file.txt",
|
|
},
|
|
flags: TkFlags(
|
|
0x0,
|
|
),
|
|
},
|
|
],
|
|
},
|
|
),
|
|
]
|