(CommandList children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ ($ VSub_Pound "$#"))} {(KW_Bang "!") (Lit_Other "=")} {(3)} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("Usage: add-memzip.sh input.hex output.hex file-directory"))}) (C {(exit)} {(1)}) ] spids: [-1 20] ) ] spids: [-1 34] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:input_hex) op: Equal rhs: {($ VSub_Number "$1")} spids: [41] ) ] spids: [41] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:output_hex) op: Equal rhs: {($ VSub_Number "$2")} spids: [44] ) ] spids: [44] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:memzip_src_dir) op: Equal rhs: {($ VSub_Number "$3")} spids: [47] ) ] spids: [47] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:input_bin) op: Equal rhs: {(${ VSub_Name input_hex) (.bin)} spids: [51] ) ] spids: [51] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:output_bin) op: Equal rhs: {(${ VSub_Name output_hex) (.bin)} spids: [57] ) ] spids: [57] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:zip_file) op: Equal rhs: {(${ VSub_Name output_hex) (.zip)} spids: [63] ) ] spids: [63] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:zip_base) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(basename)} {(${ VSub_Name zip_file)})]) left_token: <Left_CommandSub "$("> spids: [70 76] ) } spids: [69] ) ] spids: [69] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:zip_dir) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(dirname)} {(${ VSub_Name zip_file)})]) left_token: <Left_CommandSub "$("> spids: [79 85] ) } spids: [78] ) ] spids: [78] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:abs_zip_dir) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(realpath)} {(${ VSub_Name zip_dir)})]) left_token: <Left_CommandSub "$("> spids: [88 94] ) } spids: [87] ) ] spids: [87] ) (C {(rm)} {(-f)} {(${ VSub_Name zip_file)}) (Subshell child: (CommandList children: [ (Sentence child: (C {(cd)} {(${ VSub_Name memzip_src_dir)}) terminator: <Op_Semi ";"> ) (C {(zip)} {(-0)} {(-r)} {(-D)} {(${ VSub_Name abs_zip_dir) (/) (${ VSub_Name zip_base)} {(.)}) ] ) spids: [105 130] ) (C {(objcopy)} {(-I)} {(ihex)} {(-O)} {(binary)} {(${ VSub_Name input_hex)} {(${ VSub_Name input_bin)}) (SimpleCommand words: [{(cat)} {(${ VSub_Name input_bin)} {(${ VSub_Name zip_file)}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(${ VSub_Name output_bin)} spids:[160])] ) (C {(objcopy)} {(-I)} {(binary)} {(-O)} {(ihex)} {(${ VSub_Name output_bin)} {(${ VSub_Name output_hex)}) (C {(echo)} { (DQ ("Added ") (${ VSub_Name memzip_src_dir) (" to ") (${ VSub_Name input_hex) (" creating ") (${ VSub_Name output_hex) ) } ) ] )