---
source: brush-parser/src/parser/tests/mod.rs
expression: "ParseResult { input, result: &result }"
---
ParseResult(
  input: "\n\n#!/usr/bin/env bash\n\nfor f in A B C; do\n\n    # sdfsdf\n    echo \"${f@L}\" >&2\n\n   done\n\n",
  result: Program(
    complete_commands: [
      CompoundList([
        CompoundListItem(AndOrList(
          first: Pipeline(
            seq: [
              Compound(ForClause(ForClauseCommand(
                variable_name: "f",
                values: Some([
                  Word(
                    value: "A",
                    loc: Some(SourceSpan(
                      start: SourcePosition(
                        index: 32,
                        line: 5,
                        column: 10,
                      ),
                      end: SourcePosition(
                        index: 33,
                        line: 5,
                        column: 11,
                      ),
                    )),
                  ),
                  Word(
                    value: "B",
                    loc: Some(SourceSpan(
                      start: SourcePosition(
                        index: 34,
                        line: 5,
                        column: 12,
                      ),
                      end: SourcePosition(
                        index: 35,
                        line: 5,
                        column: 13,
                      ),
                    )),
                  ),
                  Word(
                    value: "C",
                    loc: Some(SourceSpan(
                      start: SourcePosition(
                        index: 36,
                        line: 5,
                        column: 14,
                      ),
                      end: SourcePosition(
                        index: 37,
                        line: 5,
                        column: 15,
                      ),
                    )),
                  ),
                ]),
                body: DoGroupCommand(
                  list: CompoundList([
                    CompoundListItem(AndOrList(
                      first: Pipeline(
                        seq: [
                          Simple(SimpleCommand(
                            word_or_name: Some(Word(
                              value: "echo",
                              loc: Some(SourceSpan(
                                start: SourcePosition(
                                  index: 60,
                                  line: 8,
                                  column: 5,
                                ),
                                end: SourcePosition(
                                  index: 64,
                                  line: 8,
                                  column: 9,
                                ),
                              )),
                            )),
                            suffix: Some(CommandSuffix([
                              Word(Word(
                                value: "\"${f@L}\"",
                                loc: Some(SourceSpan(
                                  start: SourcePosition(
                                    index: 65,
                                    line: 8,
                                    column: 10,
                                  ),
                                  end: SourcePosition(
                                    index: 73,
                                    line: 8,
                                    column: 18,
                                  ),
                                )),
                              )),
                              IoRedirect(File(None, DuplicateOutput, Duplicate(Word(
                                value: "2",
                                loc: Some(SourceSpan(
                                  start: SourcePosition(
                                    index: 76,
                                    line: 8,
                                    column: 21,
                                  ),
                                  end: SourcePosition(
                                    index: 77,
                                    line: 8,
                                    column: 22,
                                  ),
                                )),
                              )))),
                            ])),
                          )),
                        ],
                      ),
                    ), Sequence),
                  ]),
                  loc: SourceSpan(
                    start: SourcePosition(
                      index: 39,
                      line: 5,
                      column: 17,
                    ),
                    end: SourcePosition(
                      index: 86,
                      line: 10,
                      column: 8,
                    ),
                  ),
                ),
                loc: SourceSpan(
                  start: SourcePosition(
                    index: 23,
                    line: 5,
                    column: 1,
                  ),
                  end: SourcePosition(
                    index: 86,
                    line: 10,
                    column: 8,
                  ),
                ),
              )), None),
            ],
          ),
        ), Sequence),
      ]),
    ],
  ),
)
