(BraceGroup left: <Id.Lit_LBrace '{'> 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'>})] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INPUT='> name:INPUT) op: assign_op.Equal rhs: {<0>} spids: [97] ) ] redirects: [] ) (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 '$'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INPUT='> name:INPUT) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [124] ) ] redirects: [] ) ] spids: [101 121] ) ] else_action: [] redirects: [] ) (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 left:<Id.Lit_VarLike 'OUTPUT_MODE='> name:OUTPUT_MODE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName INPUT)} spids: [169] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TERM_X='> name:TERM_X) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<tput>} {<cols>}) right: <Id.Eof_RParen _> ) } spids: [178] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TERM_Y='> name:TERM_Y) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<tput>} {<lines>}) right: <Id.Eof_RParen _> ) } spids: [186] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TERM_TOTAL_CHARS='> 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] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TERM_COLOUR='> name:TERM_COLOUR) op: assign_op.Equal rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'e[48;5;15m'>)} spids: [213] ) ] redirects: [] ) (command.ShFunction name: Output_On body: (BraceGroup left: <Id.Lit_LBrace '{'> 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>} ) redirects: [] ) 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>} ) redirects: [] ) 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'>} ) ] more_env: [] 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'>} ) ] more_env: [] 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>} ) redirects: [] ) 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'>} ) ] more_env: [] do_fork: T ) terminator: <Id.Op_Amp _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pid='> name:pid) op: assign_op.Equal rhs: {($ Id.VSub_Bang '!')} spids: [369] ) ] redirects: [] ) ] spids: [318 332] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Output_Off body: (BraceGroup left: <Id.Lit_LBrace '{'> 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>} ) redirects: [] ) 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>} ) redirects: [] ) 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'>} ) ] more_env: [] 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'>} ) ] more_env: [] 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>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<kill>} {<-9>} {($ Id.VSub_DollarName pid)})] spids: [470 484] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHAR_CURRENT='> name:CHAR_CURRENT) op: assign_op.Equal rhs: {<0>} spids: [520] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FP_TEXTFILE_INPUT='> name:FP_TEXTFILE_INPUT) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName HOME) <'/dietpi-morsecode'>)} spids: [529] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'FP_TEXTFILE_LOWERCASE='> name: FP_TEXTFILE_LOWERCASE ) op: assign_op.Equal rhs: {(DQ <'/tmp/.dietpi-morsecode_lowercase'>)} spids: [536] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MC_DURATION_UNIT='> name:MC_DURATION_UNIT) op: assign_op.Equal rhs: {<0.15>} spids: [547] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MC_DURATION_DASH='> 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 stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [555] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MC_DURATION_WORD='> 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 stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [577] ) ] redirects: [] ) (command.ShFunction name: Mc_Convert_Input_Textfile_Lowercase body: (BraceGroup left: <Id.Lit_LBrace '{'> 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'>} ) ] more_env: [] do_fork: T ) (C {<echo>} {<-e>} { (DQ <Completed> <Id.Lit_BadBackslash '\\'> <'nRendering to Output_Mode '> ($ Id.VSub_DollarName OUTPUT_MODE) ) } ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Mc_Dot body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<Output_On>}) (C {<sleep>} {($ Id.VSub_DollarName MC_DURATION_UNIT)}) (C {<Output_Off>}) (C {<sleep>} {($ Id.VSub_DollarName MC_DURATION_UNIT)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Mc_Dash body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<Output_On>}) (C {<sleep>} {($ Id.VSub_DollarName MC_DURATION_DASH)}) (C {<Output_Off>}) (C {<sleep>} {($ Id.VSub_DollarName MC_DURATION_UNIT)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Mc_Next_Char body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [(C {<sleep>} {($ Id.VSub_DollarName MC_DURATION_DASH)})] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Mc_Next_Word body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [(C {<sleep>} {($ Id.VSub_DollarName MC_DURATION_WORD)})] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Mc_End_of_Message body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<Mc_Next_Word>}) (C {<Mc_Dot>}) (C {<Mc_Dash>}) (C {<Mc_Dot>}) (C {<Mc_Dash>}) (C {<Mc_Dot>}) (C {<Mc_Next_Word>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: Convert_Text_To_Morsecode body: (BraceGroup left: <Id.Lit_LBrace '{'> 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] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (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] ) ] else_action: [] redirects: [] ) (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: [] ) ] ) 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>) ] redirects: [] right: <Id.Lit_RBrace '}'> )