(BraceGroup
  children: [
    (command.Simple
      words: [{<renice>} {<-n>} {<-10>} {($ Id.VSub_Dollar '$$')}]
      redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
      do_fork: T
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:INPUT) op:assign_op.Equal rhs:{<0>} spids:[97])]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_EqualTilde
                          left: {($ Id.VSub_Number '$1')}
                          right: 
                            {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> 
                              <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                            }
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INPUT)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [124]
                )
              ]
            )
          ]
          spids: [101 121]
        )
      ]
    )
    (C {<.>} {<'/DietPi/dietpi/func/dietpi-globals'>})
    (C {<G_CHECK_ROOT_USER>})
    (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-Morsecode>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OUTPUT_MODE)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName '$INPUT')}
          spids: [169]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TERM_X)
          op: assign_op.Equal
          rhs: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<tput>} {<cols>}))}
          spids: [178]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TERM_Y)
          op: assign_op.Equal
          rhs: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<tput>} {<lines>}))}
          spids: [186]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TERM_TOTAL_CHARS)
          op: assign_op.Equal
          rhs: 
            {
              (word_part.ArithSub
                anode: 
                  (arith_expr.Binary
                    op_id: Id.Arith_Minus
                    left: 
                      (arith_expr.Binary
                        op_id: Id.Arith_Star
                        left: {($ Id.VSub_DollarName '$TERM_X')}
                        right: {($ Id.VSub_DollarName '$TERM_Y')}
                      )
                    right: {<Id.Lit_Digits 1>}
                  )
              )
            }
          spids: [194]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TERM_COLOUR)
          op: assign_op.Equal
          rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'e[48;5;15m'>)}
          spids: [213]
        )
      ]
    )
    (command.ShFunction
      name: Output_On
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$OUTPUT_MODE')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$TERM_COLOUR'))})
                    (C {<clear>})
                  ]
                  spids: [242 256]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$OUTPUT_MODE')}
                                  right: {<Id.Lit_Digits 1>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<echo>} {<1>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/sys/class/leds/led0/brightness'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {<1>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/sys/class/leds/led1/brightness'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [281 295]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$OUTPUT_MODE')}
                                  right: {<Id.Lit_Digits 2>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          words: [
                            {<speaker-test>}
                            {<-b>}
                            {<40000>}
                            {<-t>}
                            {<sine>}
                            {<-f>}
                            {<800>}
                            {<-l>}
                            {<1>}
                            {<-p>}
                            {<1>}
                          ]
                          redirects: [
                            (redir
                              op: <Id.Redir_AndGreat '&>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                      terminator: <Id.Op_Amp _>
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:pid)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Bang '$!')}
                          spids: [369]
                        )
                      ]
                    )
                  ]
                  spids: [318 332]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Output_Off
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$OUTPUT_MODE')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<echo>} {<-e>} {(DQ <Id.Lit_BadBackslash '\\'> <'e[0m'>)}) (C {<clear>})]
                  spids: [393 407]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$OUTPUT_MODE')}
                                  right: {<Id.Lit_Digits 1>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<echo>} {<0>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/sys/class/leds/led0/brightness'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {<0>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/sys/class/leds/led1/brightness'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [433 447]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$OUTPUT_MODE')}
                                  right: {<Id.Lit_Digits 2>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<kill>} {<-9>} {($ Id.VSub_DollarName '$pid')})]
                  spids: [470 484]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CHAR_CURRENT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [520]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FP_TEXTFILE_INPUT)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$HOME') <'/dietpi-morsecode'>)}
          spids: [529]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FP_TEXTFILE_LOWERCASE)
          op: assign_op.Equal
          rhs: {(DQ <'/tmp/.dietpi-morsecode_lowercase'>)}
          spids: [536]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MC_DURATION_UNIT)
          op: assign_op.Equal
          rhs: {<0.15>}
          spids: [547]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MC_DURATION_DASH)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<echo>} {<->})
                      (C {<awk>} {(DQ <'{print '> ($ Id.VSub_DollarName '$MC_DURATION_UNIT') <' * 3}'>)})
                    ]
                    negated: F
                  )
              )
            }
          spids: [555]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MC_DURATION_WORD)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<echo>} {<->})
                      (C {<awk>} {(DQ <'{print '> ($ Id.VSub_DollarName '$MC_DURATION_UNIT') <' * 7}'>)})
                    ]
                    negated: F
                  )
              )
            }
          spids: [577]
        )
      ]
    )
    (command.ShFunction
      name: Mc_Convert_Input_Textfile_Lowercase
      body: 
        (BraceGroup
          children: [
            (C {<echo>} {<-e>} {(DQ <DietPi-Morsecode> <Id.Lit_BadBackslash '\\'> <n>)})
            (C {<echo>} {<-e>} 
              {(DQ <'Converting input file to lowercase......'> <Id.Lit_BadBackslash '\\'> <n>)}
            )
            (command.Simple
              words: [
                {<dd>}
                {<Id.Lit_VarLike 'if='> (DQ ($ Id.VSub_DollarName '$FP_TEXTFILE_INPUT'))}
                {<Id.Lit_VarLike 'of='> (DQ ($ Id.VSub_DollarName '$FP_TEXTFILE_LOWERCASE'))}
                {<Id.Lit_VarLike 'conv='> <lcase>}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              do_fork: T
            )
            (C {<echo>} {<-e>} 
              {
                (DQ <Completed> <Id.Lit_BadBackslash '\\'> <'nRendering to Output_Mode '> 
                  ($ Id.VSub_DollarName '$OUTPUT_MODE')
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: Mc_Dot
      body: 
        (BraceGroup
          children: [
            (C {<Output_On>})
            (C {<sleep>} {($ Id.VSub_DollarName '$MC_DURATION_UNIT')})
            (C {<Output_Off>})
            (C {<sleep>} {($ Id.VSub_DollarName '$MC_DURATION_UNIT')})
          ]
        )
    )
    (command.ShFunction
      name: Mc_Dash
      body: 
        (BraceGroup
          children: [
            (C {<Output_On>})
            (C {<sleep>} {($ Id.VSub_DollarName '$MC_DURATION_DASH')})
            (C {<Output_Off>})
            (C {<sleep>} {($ Id.VSub_DollarName '$MC_DURATION_UNIT')})
          ]
        )
    )
    (command.ShFunction
      name: Mc_Next_Char
      body: (BraceGroup children:[(C {<sleep>} {($ Id.VSub_DollarName '$MC_DURATION_DASH')})])
    )
    (command.ShFunction
      name: Mc_Next_Word
      body: (BraceGroup children:[(C {<sleep>} {($ Id.VSub_DollarName '$MC_DURATION_WORD')})])
    )
    (command.ShFunction
      name: Mc_End_of_Message
      body: 
        (BraceGroup
          children: [
            (C {<Mc_Next_Word>})
            (C {<Mc_Dot>})
            (C {<Mc_Dash>})
            (C {<Mc_Dot>})
            (C {<Mc_Dash>})
            (C {<Mc_Dot>})
            (C {<Mc_Next_Word>})
          ]
        )
    )
    (command.ShFunction
      name: Convert_Text_To_Morsecode
      body: 
        (BraceGroup
          children: [
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName '$CHAR_CURRENT'))}
              arms: [
                (case_arm
                  pat_list: [{<0>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dash>})]
                  spids: [805 806 824 -1]
                )
                (case_arm
                  pat_list: [{<1>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dash>})]
                  spids: [827 828 846 -1]
                )
                (case_arm
                  pat_list: [{<2>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dash>})]
                  spids: [849 850 868 -1]
                )
                (case_arm
                  pat_list: [{<3>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dash>}) (C {<Mc_Dash>})]
                  spids: [871 872 890 -1]
                )
                (case_arm
                  pat_list: [{<4>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dash>})]
                  spids: [893 894 912 -1]
                )
                (case_arm
                  pat_list: [{<5>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dot>})]
                  spids: [915 916 934 -1]
                )
                (case_arm
                  pat_list: [{<6>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dot>})]
                  spids: [937 938 956 -1]
                )
                (case_arm
                  pat_list: [{<7>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dot>})]
                  spids: [959 960 978 -1]
                )
                (case_arm
                  pat_list: [{<8>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dot>}) (C {<Mc_Dot>})]
                  spids: [981 982 1000 -1]
                )
                (case_arm
                  pat_list: [{<9>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dot>})]
                  spids: [1003 1004 1022 -1]
                )
                (case_arm
                  pat_list: [{<a>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dash>})]
                  spids: [1025 1026 1035 -1]
                )
                (case_arm
                  pat_list: [{<b>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dot>})]
                  spids: [1038 1039 1054 -1]
                )
                (case_arm
                  pat_list: [{<c>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dot>}) (C {<Mc_Dash>}) (C {<Mc_Dot>})]
                  spids: [1057 1058 1073 -1]
                )
                (case_arm
                  pat_list: [{<d>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dot>}) (C {<Mc_Dot>})]
                  spids: [1076 1077 1089 -1]
                )
                (case_arm
                  pat_list: [{<e>}]
                  action: [(C {<Mc_Dot>})]
                  spids: [1092 1093 1099 -1]
                )
                (case_arm
                  pat_list: [{<f>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dash>}) (C {<Mc_Dot>})]
                  spids: [1102 1103 1118 -1]
                )
                (case_arm
                  pat_list: [{<g>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dot>})]
                  spids: [1121 1122 1134 -1]
                )
                (case_arm
                  pat_list: [{<h>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dot>})]
                  spids: [1137 1138 1153 -1]
                )
                (case_arm
                  pat_list: [{<i>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dot>})]
                  spids: [1156 1157 1166 -1]
                )
                (case_arm
                  pat_list: [{<j>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dash>})]
                  spids: [1169 1170 1185 -1]
                )
                (case_arm
                  pat_list: [{<k>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dot>}) (C {<Mc_Dash>})]
                  spids: [1188 1189 1201 -1]
                )
                (case_arm
                  pat_list: [{<l>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dash>}) (C {<Mc_Dot>}) (C {<Mc_Dot>})]
                  spids: [1204 1205 1220 -1]
                )
                (case_arm
                  pat_list: [{<m>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dash>})]
                  spids: [1223 1224 1233 -1]
                )
                (case_arm
                  pat_list: [{<n>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dot>})]
                  spids: [1236 1237 1246 -1]
                )
                (case_arm
                  pat_list: [{<o>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dash>})]
                  spids: [1249 1250 1262 -1]
                )
                (case_arm
                  pat_list: [{<p>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dot>})]
                  spids: [1265 1266 1281 -1]
                )
                (case_arm
                  pat_list: [{<q>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dot>}) (C {<Mc_Dash>})]
                  spids: [1284 1285 1300 -1]
                )
                (case_arm
                  pat_list: [{<r>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dash>}) (C {<Mc_Dot>})]
                  spids: [1303 1304 1316 -1]
                )
                (case_arm
                  pat_list: [{<s>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dot>})]
                  spids: [1319 1320 1332 -1]
                )
                (case_arm
                  pat_list: [{<t>}]
                  action: [(C {<Mc_Dash>})]
                  spids: [1335 1336 1342 -1]
                )
                (case_arm
                  pat_list: [{<u>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dash>})]
                  spids: [1345 1346 1358 -1]
                )
                (case_arm
                  pat_list: [{<v>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dash>})]
                  spids: [1361 1362 1377 -1]
                )
                (case_arm
                  pat_list: [{<w>}]
                  action: [(C {<Mc_Dot>}) (C {<Mc_Dash>}) (C {<Mc_Dash>})]
                  spids: [1380 1381 1393 -1]
                )
                (case_arm
                  pat_list: [{<x>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dash>})]
                  spids: [1396 1397 1412 -1]
                )
                (case_arm
                  pat_list: [{<y>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dot>}) (C {<Mc_Dash>}) (C {<Mc_Dash>})]
                  spids: [1415 1416 1431 -1]
                )
                (case_arm
                  pat_list: [{<z>}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dash>}) (C {<Mc_Dot>}) (C {<Mc_Dot>})]
                  spids: [1434 1435 1450 -1]
                )
                (case_arm
                  pat_list: [{(DQ <.>)}]
                  action: [
                    (C {<Mc_Dot>})
                    (C {<Mc_Dash>})
                    (C {<Mc_Dot>})
                    (C {<Mc_Dash>})
                    (C {<Mc_Dot>})
                    (C {<Mc_Dash>})
                  ]
                  spids: [1453 1456 1477 -1]
                )
                (case_arm
                  pat_list: [{(DQ <','>)}]
                  action: [
                    (C {<Mc_Dash>})
                    (C {<Mc_Dash>})
                    (C {<Mc_Dot>})
                    (C {<Mc_Dot>})
                    (C {<Mc_Dash>})
                    (C {<Mc_Dash>})
                  ]
                  spids: [1480 1483 1504 -1]
                )
                (case_arm
                  pat_list: [{(DQ <':'>)}]
                  action: [
                    (C {<Mc_Dash>})
                    (C {<Mc_Dash>})
                    (C {<Mc_Dash>})
                    (C {<Mc_Dot>})
                    (C {<Mc_Dot>})
                    (C {<Mc_Dot>})
                  ]
                  spids: [1507 1510 1531 -1]
                )
                (case_arm
                  pat_list: [{(DQ <'\''>)}]
                  action: [
                    (C {<Mc_Dot>})
                    (C {<Mc_Dash>})
                    (C {<Mc_Dash>})
                    (C {<Mc_Dash>})
                    (C {<Mc_Dash>})
                    (C {<Mc_Dot>})
                  ]
                  spids: [1534 1537 1558 -1]
                )
                (case_arm
                  pat_list: [{(DQ <->)}]
                  action: [
                    (C {<Mc_Dash>})
                    (C {<Mc_Dot>})
                    (C {<Mc_Dot>})
                    (C {<Mc_Dot>})
                    (C {<Mc_Dot>})
                    (C {<Mc_Dash>})
                  ]
                  spids: [1561 1564 1585 -1]
                )
                (case_arm
                  pat_list: [{(DQ <'/'>)}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dash>}) (C {<Mc_Dot>})]
                  spids: [1588 1591 1609 -1]
                )
                (case_arm
                  pat_list: [{(DQ <'@'>)}]
                  action: [
                    (C {<Mc_Dot>})
                    (C {<Mc_Dash>})
                    (C {<Mc_Dash>})
                    (C {<Mc_Dot>})
                    (C {<Mc_Dash>})
                    (C {<Mc_Dot>})
                  ]
                  spids: [1612 1615 1636 -1]
                )
                (case_arm
                  pat_list: [{(DQ <'='>)}]
                  action: [(C {<Mc_Dash>}) (C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dot>}) (C {<Mc_Dash>})]
                  spids: [1639 1642 1660 -1]
                )
              ]
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} 
                      {(DQ ($ Id.VSub_DollarName '$FP_TEXTFILE_INPUT'))} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<clear>})
            (C {<echo>} {<-e>} 
              {
                (DQ <Id.Lit_BadBackslash '\\'> <'nNo textfile was found. Please create a file at:'> 
                  <Id.Lit_BadBackslash '\\'> <n> ($ Id.VSub_DollarName '$FP_TEXTFILE_INPUT') <Id.Lit_BadBackslash '\\'> 
                  <'nThis file will then be converted to Morse Code.'>
                )
              }
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
          ]
          spids: [1687 1702]
        )
      ]
    )
    (C {<Mc_Convert_Input_Textfile_Lowercase>})
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: (condition.Shell commands:[(C {<read>} {<-r>} {<-n1>} {<CHAR_CURRENT>})])
      body: 
        (command.DoGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$CHAR_CURRENT'))} 
                              {<Id.Lit_Equals '='>} {(DQ <' '>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Mc_Next_Word>})]
                  spids: [1767 1784]
                )
              ]
              else_action: [(C {<Mc_Next_Char>}) (C {<Convert_Text_To_Morsecode>})]
            )
          ]
        )
      redirects: [
        (redir
          op: <Id.Redir_Less '<'>
          loc: (redir_loc.Fd fd:0)
          arg: {(DQ ($ Id.VSub_DollarName '$FP_TEXTFILE_LOWERCASE'))}
        )
      ]
    )
    (C {<Mc_End_of_Message>})
    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$FP_TEXTFILE_LOWERCASE'))})
    (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
  ]
)