(CommandList children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ('Usage: ') ($ VSub_Number '$0') (' temperature[F|C|K]\n') ('where the suffix:\n') (' F indicates input is in Fahrenheit (default)\n') (' C indicates input is in Celsius\n') (' K indicates input is in Kelvin\n') ) } do_expansion: True here_end: EOF was_filled: True spids: [33] ) (Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[37]) ] ) (C {(exit)} {(1)}) ] spids: [-1 28] ) ] spids: [-1 53] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:unit) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Number '$1')}) (C {(sed)} {(-e)} {(SQ <'s/[-[:digit:]]*//g'>)}) (C {(tr)} {(SQ <'[:lower:]'>)} {(SQ <'[:upper:]'>)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [58 83] ) ) } spids: [56] ) ] spids: [56] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:temp) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Number '$1')}) (C {(sed)} {(-e)} {(SQ <'s/[^-[:digit:]]*//g'>)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [88 100] ) ) } spids: [86] ) ] spids: [86] ) (Case to_match: { (BracedVarSub token: <VSub_Name unit> suffix_op: (StringUnary op_id:VTest_ColonEquals arg_word:{(F)}) spids: [106 110] ) } arms: [ (case_arm pat_list: [{(F)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:farn) op: Equal rhs: {(DQ ($ VSub_Name '$temp'))} spids: [123] ) ] spids: [123] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cels) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ('scale=2;(') ($ VSub_Name '$farn') (' - 32) / 1.8'))} ) (C {(bc)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [131 143] ) ) } spids: [129] ) ] spids: [129] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kelv) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ('scale=2;') ($ VSub_Name '$cels') (' + 273.15'))}) (C {(bc)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [149 161] ) ) } spids: [147] ) ] spids: [147] ) ] spids: [115 117 165 -1] ) (case_arm pat_list: [{(C)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cels) op: Equal rhs: {($ VSub_Name '$temp')} spids: [177] ) ] spids: [177] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kelv) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ('scale=2;') ($ VSub_Name '$cels') (' + 273.15'))}) (C {(bc)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [183 195] ) ) } spids: [181] ) ] spids: [181] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:farn) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ('scale=2;(1.8 * ') ($ VSub_Name '$cels') (') + 32'))} ) (C {(bc)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [201 213] ) ) } spids: [199] ) ] spids: [199] ) ] spids: [169 171 217 -1] ) (case_arm pat_list: [{(K)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kelv) op: Equal rhs: {($ VSub_Name '$temp')} spids: [229] ) ] spids: [229] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cels) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ('scale=2; ') ($ VSub_Name '$kelv') (' - 273.15'))}) (C {(bc)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [235 247] ) ) } spids: [233] ) ] spids: [233] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:farn) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ('scale=2; (1.8 * ') ($ VSub_Name '$cels') (') + 32'))} ) (C {(bc)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [253 265] ) ) } spids: [251] ) ] spids: [251] ) ] spids: [221 223 269 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(echo)} {(DQ ('Given temperature unit is not supported'))}) (C {(exit)} {(1)})] spids: [273 274 -1 288] ) ] spids: [104 112 288] ) (C {(echo)} {(DQ ('Fahrenheit = ') ($ VSub_Name '$farn'))}) (C {(echo)} {(DQ ('Celsius = ') ($ VSub_Name '$cels'))}) (C {(echo)} {(DQ ('Kelvin = ') ($ VSub_Name '$kelv'))}) (C {(exit)} {(0)}) ] )