(command.CommandList
  children: [
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<.>} {<'sources/utility_functions.sh'>})
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
    )
    (C {<echo>} {(DQ <'Architecture,Smoketest,Control Image,Build Stage'>)})
    (command.ForEach
      iter_name: i
      iter_words: [
        {
          (command_sub
            left_token: <Id.Left_DollarParen '$('>
            child: 
              (command.Pipeline
                children: [(C {<ls>} {<'sources/targets'>}) (C {<sed>} {(SQ <'s@.*/@@'>)})]
                negated: F
              )
          )
        }
      ]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} 
                  {(DQ <'sources/targets/'> ($ Id.VSub_DollarName '$i'))} {<Id.Lit_RBracket ']'>}
                )
                (command.ControlFlow token:<Id.ControlFlow_Continue continue>)
              ]
            )
            (C {<echo>} {<-n>} {(DQ ($ Id.VSub_DollarName '$i') <','>)})
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [
                    {<grep>}
                    {<-q>}
                    {(SQ <'Hello world!'>)}
                    {<'build/logs/smoketest-'> ($ Id.VSub_DollarName '$i') <.txt>}
                  ]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (C {<echo>} {<-n>} {(DQ <'PASS,'>)})
                (C {<echo>} {<-n>} {(DQ <'FAIL,'>)})
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-e>} 
                  {(DQ <'build/dropbearmulti-'> ($ Id.VSub_DollarName '$i'))} {<Id.Lit_RBracket ']'>}
                )
                (C {<echo>} {<-n>} {(DQ <'PASS,'>)})
                (C {<echo>} {<-n>} {(DQ <'FAIL,'>)})
              ]
            )
            (C {<echo>} 
              {
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<sed>} {<-n>} {(SQ <'s/^=== \\([^(]*\\)([^ ]* \\(.*\\))/\\2 \\1/p'>)} 
                          {<'build/logs/build-'> ($ Id.VSub_DollarName '$i') <.txt>}
                        )
                        (C {<tail>} {<-n>} {<1>})
                      ]
                      negated: F
                    )
                )
              }
            )
          ]
        )
    )
  ]
)