(CommandList children: [ (C {(.)} {(../1/library.sh)}) (FuncDef name: askvalue body: (BraceGroup children: [ (C {(echon)} {(DQ ($ VSub_Number '$1') (' [') ($ VSub_Number '$2') ('] : '))}) (C {(read)} {(answer)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (BracedVarSub token: <VSub_Name answer> suffix_op: (StringUnary op_id: VTest_ColonEquals arg_word: {($ VSub_Number '$2')} ) spids: [60 64] ) } {(-gt)} {($ VSub_Number '$3')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (C {(echo)} { (DQ ($ VSub_Number '$0') (': ') ($ VSub_Number '$1') (' ') ($ VSub_Name '$answer') (' is invalid') ) } ) terminator: <Op_Semi ';'> ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] spids: [16777215 74] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (DQ (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$answer')}) (C {(wc)} {(-c)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [101 111] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [99 118] ) ) } {(-lt)} {($ VSub_Number '$4')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (C {(echo)} { (DQ ($ VSub_Number '$0') (': ') ($ VSub_Number '$1') (' ') ($ VSub_Name '$answer') (' is too short: please specify ') ($ VSub_Number '$4') (' digits') ) } ) terminator: <Op_Semi ';'> ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] spids: [94 129] ) ] spids: [16777215 151] ) (C {(eval)} {($ VSub_Number '$1') (Lit_Other '=') ($ VSub_Name '$answer')}) ] spids: [29] ) spids: [25 28] ) (C {(eval)} { (CommandSubPart command_list: (CommandList children: [(C {(date)} {(DQ ('+nyear=%Y nmon=%m nday=%d nhr=%H nmin=%M'))})] ) left_token: <Left_CommandSub '$('> spids: [168 174] ) } ) (C {(askvalue)} {(year)} {($ VSub_Name '$nyear')} {(3000)} {(4)}) (C {(askvalue)} {(month)} {($ VSub_Name '$nmon')} {(12)} {(2)}) (C {(askvalue)} {(day)} {($ VSub_Name '$nday')} {(31)} {(2)}) (C {(askvalue)} {(hour)} {($ VSub_Name '$nhr')} {(24)} {(2)}) (C {(askvalue)} {(minute)} {($ VSub_Name '$nmin')} {(59)} {(2)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:squished) op: Equal rhs: { (DQ ($ VSub_Name '$month') ($ VSub_Name '$day') ($ VSub_Name '$hour') ($ VSub_Name '$minute') ($ VSub_Name '$year') ) } spids: [235] ) ] spids: [235] ) (C {(echo)} { (DQ ('Setting date to ') ($ VSub_Name '$squished') ('. You might need to enter your sudo password:') ) } ) (C {(sudo)} {(date)} {($ VSub_Name '$squished')}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] )