(command.CommandList
  children: [
    (C {<echo>} {(SQ <'--- envini requires arguments'>)})
    (command.CommandList
      children: [
        (command.Sentence child:(C {<envini>} {<whatever>}) terminator:<Id.Op_Semi _>)
        (C {<echo>} {($ Id.VSub_QMark '$?')})
      ]
    )
    (C {<echo>} {(SQ <'--- envini complains if it cannot read file'>)})
    (C {<ln>} {<-s>} {<envi>} {<envi>})
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {<envini>} {<envi>} {<echo>} {<yes>})
          terminator: <Id.Op_Semi _>
        )
        (C {<echo>} {($ Id.VSub_QMark '$?')})
      ]
    )
    (C {<rm>} {<envi>})
    (C {<echo>} {(SQ <'--- envini adds variables'>)})
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<envi>})
        (redir.HereDoc
          op: <Id.Redir_DLess '<<'>
          fd: -1
          here_begin: {<EOF>}
          here_end_span_id: 70
          stdin_parts: [
            <'; comment\n'>
            <'broken\n'>
            <' Message = This is a test.\n'>
            <'[sect]\n'>
            <'Message=This is only a test.    \n'>
          ]
        )
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {<envini>} {<envi>} {<sh>} {<-c>} {(SQ <'echo $Message; echo $sect_Message'>)})
          terminator: <Id.Op_Semi _>
        )
        (C {<echo>} {($ Id.VSub_QMark '$?')})
      ]
    )
    (C {<echo>} {(SQ <'--- envini adds prefix'>)})
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (C {<envini>} {<-p>} {<prefix_>} {<envi>} {<sh>} {<-c>} 
              {(SQ <'echo $Message; echo $prefix_Message'>)}
            )
          terminator: <Id.Op_Semi _>
        )
        (C {<echo>} {($ Id.VSub_QMark '$?')})
      ]
    )
  ]
)