(command.If
  arms: [
    (if_arm
      cond: [(command.Sentence child:(C {(test)} {(-t)} {(1)}) terminator:<Op_Semi ';'>)]
      action: [
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:NUM_COLORS spids:[23])
              op: Equal
              rhs: 
                {
                  (word_part.CommandSubPart
                    command_list: (command.CommandList children:[(C {(tput)} {(colors)})])
                    left_token: <Left_CommandSub '$('>
                    spids: [24 28]
                  )
                }
              spids: [23]
            )
          ]
          spids: [23]
        )
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {(-n)} {(DQ (${ VSub_Name NUM_COLORS))})
                        (C {(test)} {(${ VSub_Name NUM_COLORS)} {(-ge)} {(8)})
                      ]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:NORMAL spids:[59])
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: (command.CommandList children:[(C {(tput)} {(sgr0)})])
                            left_token: <Left_CommandSub '$('>
                            spids: [60 64]
                          )
                        }
                      spids: [59]
                    )
                  ]
                  spids: [59]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:BOLD spids:[67])
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: (command.CommandList children:[(C {(tput)} {(bold)})])
                            left_token: <Left_CommandSub '$('>
                            spids: [68 72]
                          )
                        }
                      spids: [67]
                    )
                  ]
                  spids: [67]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:UNDERLINE spids:[75])
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: (command.CommandList children:[(C {(tput)} {(smul)})])
                            left_token: <Left_CommandSub '$('>
                            spids: [76 80]
                          )
                        }
                      spids: [75]
                    )
                  ]
                  spids: [75]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:REVERSE spids:[83])
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: (command.CommandList children:[(C {(tput)} {(smso)})])
                            left_token: <Left_CommandSub '$('>
                            spids: [84 88]
                          )
                        }
                      spids: [83]
                    )
                  ]
                  spids: [83]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:BLINK spids:[91])
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: (command.CommandList children:[(C {(tput)} {(blink)})])
                            left_token: <Left_CommandSub '$('>
                            spids: [92 96]
                          )
                        }
                      spids: [91]
                    )
                  ]
                  spids: [91]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:BLACK spids:[99])
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: 
                              (command.CommandList
                                children: [(C {(tput)} {(setaf)} {(0)})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [100 106]
                          )
                        }
                      spids: [99]
                    )
                  ]
                  spids: [99]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:RED spids:[109])
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: 
                              (command.CommandList
                                children: [(C {(tput)} {(setaf)} {(1)})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [110 116]
                          )
                        }
                      spids: [109]
                    )
                  ]
                  spids: [109]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:GREEN spids:[119])
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: 
                              (command.CommandList
                                children: [(C {(tput)} {(setaf)} {(2)})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [120 126]
                          )
                        }
                      spids: [119]
                    )
                  ]
                  spids: [119]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:YELLOW spids:[129])
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: 
                              (command.CommandList
                                children: [(C {(tput)} {(setaf)} {(3)})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [130 136]
                          )
                        }
                      spids: [129]
                    )
                  ]
                  spids: [129]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:BLUE spids:[139])
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: 
                              (command.CommandList
                                children: [(C {(tput)} {(setaf)} {(4)})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [140 146]
                          )
                        }
                      spids: [139]
                    )
                  ]
                  spids: [139]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:MAGENTA spids:[149])
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: 
                              (command.CommandList
                                children: [(C {(tput)} {(setaf)} {(5)})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [150 156]
                          )
                        }
                      spids: [149]
                    )
                  ]
                  spids: [149]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:CYAN spids:[159])
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: 
                              (command.CommandList
                                children: [(C {(tput)} {(setaf)} {(6)})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [160 166]
                          )
                        }
                      spids: [159]
                    )
                  ]
                  spids: [159]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:WHITE spids:[169])
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: 
                              (command.CommandList
                                children: [(C {(tput)} {(setaf)} {(7)})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [170 176]
                          )
                        }
                      spids: [169]
                    )
                  ]
                  spids: [169]
                )
              ]
              spids: [16777215 56]
            )
          ]
          spids: [16777215 179]
        )
      ]
      spids: [16777215 16]
    )
  ]
  spids: [16777215 181]
)