(command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'now='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'now='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'now='> name:now) op: assign_op.Equal rhs: {<2008-05-01> <Id.Lit_Other '+'> <01> <Id.Lit_Colon ':'> <02> <Id.Lit_Colon ':'> <03>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'regress='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'regress='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'regress='> name:regress) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName regress)}) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [ <Id.Char_Literals '%s'> <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\t'> <Id.Char_Literals '%s'> <Id.Char_OneChar '\\t'> <Id.Char_Literals '%s'> <Id.Char_OneChar '\\n'> ] right: <Id.Right_SingleQuote '\''> ) } {(DQ <SET>)} {(DQ <NOW>)} {(DQ ($ Id.VSub_DollarName now))} ] redirects: [] do_fork: T ) ] spids: [80 88] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<d>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName d)}) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName regress)}) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'width='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'width='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'width='> name:width) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name d> var_name: d prefix_op: <Id.VSub_Pound '#'> right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike width) right: {<Id.Lit_Digits 8>} ) right: <Id.Op_DRightParen _> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'sep='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sep='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'sep='> name: sep ) op: assign_op.Equal rhs: { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [ <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\t'> ] right: <Id.Right_SingleQuote '\''> ) } ) ] redirects: [] ) ] spids: [161 175] ) (IfArm keyword: <Id.KW_Elif elif> cond: (condition.Shell commands: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike width) right: {<Id.Lit_Digits 16>} ) right: <Id.Op_DRightParen _> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'sep='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sep='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'sep='> name: sep ) op: assign_op.Equal rhs: { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [ <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\t'> ] right: <Id.Right_SingleQuote '\''> ) } ) ] redirects: [] ) ] spids: [187 201] ) (IfArm keyword: <Id.KW_Elif elif> cond: (condition.Shell commands: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike width) right: {<Id.Lit_Digits 24>} ) right: <Id.Op_DRightParen _> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'sep='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sep='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'sep='> name: sep ) op: assign_op.Equal rhs: { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [ <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\t'> ] right: <Id.Right_SingleQuote '\''> ) } ) ] redirects: [] ) ] spids: [212 226] ) (IfArm keyword: <Id.KW_Elif elif> cond: (condition.Shell commands: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike width) right: {<Id.Lit_Digits 32>} ) right: <Id.Op_DRightParen _> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'sep='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sep='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'sep='> name: sep ) op: assign_op.Equal rhs: { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [ <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\t'> ] right: <Id.Right_SingleQuote '\''> ) } ) ] redirects: [] ) ] spids: [236 250] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'sep='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sep='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sep='> name:sep) op: assign_op.Equal rhs: { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\t'>] right: <Id.Right_SingleQuote '\''> ) } ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName d)} right: { (word_part.ExtGlob op: <Id.ExtGlob_Plus '+('> arms: [{<'[a-z]'>}] right: <Id.Right_ExtGlob _> ) <day> } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [ <Id.Char_Literals '%s%sNULL'> <Id.Char_OneChar '\\t'> <Id.Char_Literals '%s'> <Id.Char_OneChar '\\n'> ] right: <Id.Right_SingleQuote '\''> ) } {(DQ ($ Id.VSub_DollarName d))} {(DQ ($ Id.VSub_DollarName sep))} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <date> more_env: [] words: [ {<date>} {<-s>} { (DQ ($ Id.VSub_DollarName now) <' '> ($ Id.VSub_DollarName d) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <tail> more_env: [] words: [{<tail>} {<-1>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] spids: [270 286] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [ <Id.Char_Literals '%s%sNULL'> <Id.Char_OneChar '\\t'> <Id.Char_Literals '%s'> <Id.Char_OneChar '\\n'> ] right: <Id.Right_SingleQuote '\''> ) } {(DQ ($ Id.VSub_DollarName d))} {(DQ ($ Id.VSub_DollarName sep))} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <date> more_env: [] words: [ {<date>} {<-s>} {(DQ ($ Id.VSub_DollarName now))} {(DQ ($ Id.VSub_DollarName d))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <tail> more_env: [] words: [{<tail>} {<-1>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [143 152] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_Literals '%s %s'> <Id.Char_OneChar '\\n'>] right: <Id.Right_SingleQuote '\''> ) } { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <date> more_env: [] words: [ {<date>} {<-s>} {(DQ ($ Id.VSub_DollarName now))} {(DQ ($ Id.VSub_DollarName d))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <tail> more_env: [] words: [{<tail>} {<-1>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) ) } {(DQ ($ Id.VSub_DollarName d))} ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [128 137] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\n'>] right: <Id.Right_SingleQuote '\''> ) } ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'\n'> <'now\n'> <'\n'> <'sunday\n'> <'monday\n'> <'tuesday\n'> <'wednesday\n'> <'thursday\n'> <'friday\n'> <'saturday\n'> <'\n'> <'this month\n'> <'last month\n'> <'next month\n'> <'\n'> <'this month 1st monday\n'> <'this month first monday\n'> <'1st monday may 2008\n'> <'first monday may 2008\n'> <'\n'> <'this month 2nd monday\n'> <'this month second monday\n'> <'2nd monday may 2008\n'> <'second monday may 2008\n'> <'\n'> <'this month 3rd monday\n'> <'this month third monday\n'> <'3rd monday may 2008\n'> <'third monday may 2008\n'> <'\n'> <'this month 4th monday\n'> <'this month fourth monday\n'> <'4th monday may 2008\n'> <'fourth monday may 2008\n'> <'\n'> <'this month 5th monday\n'> <'this month fifth monday\n'> <'5th monday may 2008\n'> <'fifth monday may 2008\n'> <'\n'> <'this month 6th monday\n'> <'this month sixth monday\n'> <'6th monday may 2008\n'> <'sixth monday may 2008\n'> <'\n'> <'this month nth monday\n'> <'this month final monday\n'> <'nth monday may 2008\n'> <'final monday may 2008\n'> <'\n'> <'last month first monday\n'> <'last month 1st monday\n'> <'last month second monday\n'> <'last month 2nd monday\n'> <'last month third monday\n'> <'last month 3rd monday\n'> <'last month fourth monday\n'> <'last month 4th monday\n'> <'last month final monday\n'> <'last month nth monday\n'> <'\n'> <'next month first monday\n'> <'next month 1st monday\n'> <'next month second monday\n'> <'next month 2nd monday\n'> <'next month third monday\n'> <'next month 3rd monday\n'> <'next month fourth monday\n'> <'next month 4th monday\n'> <'next month final monday\n'> <'next month nth monday\n'> <'\n'> ] ) ) ] ) ] )