(List (Com {[LIT_OTHER ":"]}) (= scope= flags=0 words=[] bindings=[('command', {[LIT_CHARS crontab]})]) (= scope= flags=0 words=[] bindings=[('prefix', {[VarSub 0 transform_ops=[VS_UNARY_DPOUND {[LIT_CHARS "*"] [LIT_SLASH /]}]]})]) (Case to_match={[VarSub prefix]}, pat_word_list=[[{[LIT_OTHER "*"] [LIT_CHARS _] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('prefix', {[VarSub prefix transform_ops=[VS_UNARY_DPERCENT {[LIT_CHARS "_*"]}]] [LIT_CHARS _]})]) (= scope= flags=0 words=[] bindings=[('prefix', {[SQ ]})]) ) (= scope= flags=0 words=[] bindings=[('cron', {[DQ [VarSub prefix][LIT_CHARS "at -qc"]]})]) (= scope= flags=0 words=[] bindings=[('file', {[VarSub HOME] [LIT_CHARS /.] [VarSub command]})]) (= scope= flags=0 words=[] bindings=[('replace', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('temp', {[VarSub TMPDIR test_op=VS_TEST_COLON_HYPHEN {[LIT_SLASH /] [LIT_CHARS tmp]}] [LIT_CHARS /cron] [VarSub $]})]) (= scope= flags=0 words=[] bindings=[('op', {[SQ ]})]) (Case to_match={[ComSub (List (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS getopts]} {[SQ ]} {[LIT_CHARS opt]} {[LIT_CHARS --xyz]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS 0] [VarSub opt]}) )]}, pat_word_list=[[{[LIT_CHARS 0123]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('usage', {[SQ ] [VarSub USAGE_LICENSE] [SQ ]})]) (= scope= flags=0 words=[] bindings=[('usage', {[SQ ]})]) ) (While (Com {[LIT_CHARS getopts]} {[DQ [VarSub usage]]} {[LIT_CHARS OPT]}) (Case to_match={[VarSub OPT]}, pat_word_list=[[{[LIT_CHARS e]}], [{[LIT_CHARS l]}], [{[LIT_CHARS r]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('op', {[LIT_CHARS edit]})]) (= scope= flags=0 words=[] bindings=[('op', {[LIT_CHARS list]})]) (= scope= flags=0 words=[] bindings=[('op', {[LIT_CHARS remove]})]) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Usage: "][VarSub command][LIT_CHARS " [-elr] [ file ]"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 2]}) ) ) ) (Com {[LIT_CHARS shift]} {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub OPTIND]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]}) (Case to_match={[VarSub #]}, pat_word_list=[[{[LIT_CHARS 0]}], [{[LIT_CHARS 1]}]] (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('replace', {[VarSub 1]})]) (Com {[LIT_CHARS shift]}) ) ) (Case to_match={[VarSub op]}, pat_word_list=[[{[SQ ]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('op', {[LIT_CHARS replace]})]) (Case to_match={[VarSub replace]}, pat_word_list=[[{[LIT_OTHER "?"] [LIT_OTHER "*"]}]] (Com {[LIT_CHARS set]} {[LIT_CHARS --]} {[SQ ]}) ) ) (Case to_match={[VarSub #]}, pat_word_list=[[{[LIT_CHARS 0]}], [{[LIT_OTHER "*"]}]] (ElseTrue) (List (Com {[LIT_CHARS getopts]} {[DQ [VarSub usage]]} {[LIT_CHARS OPT]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 2]}) ) ) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS errexit]} {[LIT_CHARS -o]} {[LIT_CHARS noglob]}) (Com {[VarSub cron]} {[LIT_CHARS -a]}) (Com {[LIT_CHARS umask]} {[LIT_CHARS 077]}) (Case to_match={[VarSub op]}, pat_word_list=[[{[LIT_CHARS edit]}], [{[LIT_CHARS list]}], [{[LIT_CHARS remove]}], [{[LIT_CHARS replace]}]] (List (Com {[LIT_CHARS trap]} {[DQ [LIT_CHARS "rm -f '"][VarSub temp][LIT_CHARS "'"]]} {[LIT_CHARS 0]} {[LIT_CHARS 1]} {[LIT_CHARS 2]} {[LIT_CHARS 3]} {[LIT_CHARS 15]}) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub file]]}) (Com {[LIT_CHARS cat]} {[DQ [VarSub file]]}) (ElseTrue) (Com {[LIT_CHARS print]} {[DQ [LIT_CHARS "# MIN HOUR DAY/MONTH MONTH DAY/WEEK COMMAND"]]}) ) (Com {[VarSub VISUAL test_op=VS_TEST_COLON_HYPHEN {[VarSub EDITOR test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS vi]}]}]} {[DQ [VarSub temp]]}) ) (List (If (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[DQ [VarSub file]]}) (Com {[LIT_CHARS cat]} {[DQ [VarSub file]]}) ) (Com {[LIT_CHARS exit]}) ) (List (Com {[VarSub cron]} {[LIT_CHARS -r]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub file]]}) (Com {[LIT_CHARS exit]}) ) (List (Com {[LIT_CHARS trap]} {[DQ [LIT_CHARS "rm -f '"][VarSub temp][LIT_CHARS "'"]]} {[LIT_CHARS 0]} {[LIT_CHARS 1]} {[LIT_CHARS 2]} {[LIT_CHARS 3]} {[LIT_CHARS 15]}) (Case to_match={[VarSub replace]}, pat_word_list=[[{[LIT_CHARS -]}], [{[DQ ]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('temp', {[VarSub file]})]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub temp]]} "> 1), > ) (Com {[LIT_CHARS cat]} {[DQ [VarSub replace]]} < (FilenameRedirectNode filename={[DQ [VarSub temp]]} "> 1), > ) ) (Com {[LIT_CHARS test]} {[LIT_CHARS -s]} {[DQ [VarSub temp]]}) ) ) (Com {[LIT_CHARS exec]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (While (Com {[LIT_CHARS read]} {[LIT_CHARS -r]} {[LIT_CHARS line]}) (List (Com {[LIT_CHARS set]} {[SQ ]} {[VarSub line]}) (Com {[LIT_CHARS shift]}) (Case to_match={[VarSub 1]}, pat_word_list=[[{[SQ ]}, {[SQ ] [LIT_OTHER "*"]}]] (Com {[LIT_CHARS continue]}) ) (Case to_match={[VarSub #]}, pat_word_list=[[{[LIT_OTHER "["] [LIT_CHARS 0-5] [LIT_OTHER "]"]}]] (Com {[LIT_CHARS print]} {[LIT_CHARS -u2]} {[DQ [VarSub command][LIT_CHARS ": "][VarSub line][LIT_CHARS ": invalid entry"]]}) ) (Com {[VarSub cron]} {[LIT_CHARS -n]} {[LIT_CHARS -t]} {[DQ [LIT_CHARS "cron "][VarSub 1][LIT_CHARS " "][VarSub 2][LIT_CHARS " "][VarSub 3][LIT_CHARS " "][VarSub 4][LIT_CHARS " "][VarSub 5]]} {[LIT_CHARS true]}) ) ) (Com {[VarSub cron]} {[LIT_CHARS -r]}) (While (Com {[LIT_CHARS read]} {[LIT_CHARS -r]} {[LIT_CHARS line]}) (List (Com {[LIT_CHARS set]} {[SQ ]} {[VarSub line]}) (Com {[LIT_CHARS shift]}) (Case to_match={[VarSub 1]}, pat_word_list=[[{[SQ ]}, {[SQ ] [LIT_OTHER "*"]}]] (Com {[LIT_CHARS continue]}) ) (= scope= flags=0 words=[] bindings=[('time', {[DQ [VarSub 1][LIT_CHARS " "][VarSub 2][LIT_CHARS " "][VarSub 3][LIT_CHARS " "][VarSub 4][LIT_CHARS " "][VarSub 5]]})]) (Com {[LIT_CHARS shift]} {[LIT_CHARS 5]}) (= scope= flags=0 words=[] bindings=[('exec', {[VarSub * transform_ops=[PatSub {[\ LIT_ESCAPED_CHAR "\\\\"] [LIT_CHARS "(?)"]} {[LIT_CHARS "\u0001"] [\ LIT_ESCAPED_CHAR "\\1"]} do_all]]})]) (= scope= flags=0 words=[] bindings=[('exec', {[VarSub exec transform_ops=[PatSub {[LIT_CHARS "@([!\u0001])"] [LIT_PERCENT "%"]} {[\ LIT_ESCAPED_CHAR "\\1"] [LIT_CHARS "\n"]} do_all]]})]) (= scope= flags=0 words=[] bindings=[('exec', {[VarSub exec transform_ops=[PatSub {[LIT_CHARS "^A"]} {[\ LIT_ESCAPED_CHAR "\\\\"]} do_all]]})]) (= scope= flags=0 words=[] bindings=[('exec', {[VarSub exec transform_ops=[PatSub {[LIT_CHARS "@(\n"] [LIT_CHARS "*)"]} {[\ LIT_ESCAPED_CHAR "\\<"] [\ LIT_ESCAPED_CHAR "\\<"] [\ LIT_ESCAPED_CHAR "\\\\"] [LIT_CHARS "\u0001\n"] [\ LIT_ESCAPED_CHAR "\\1"] [LIT_CHARS "\n"] [LIT_CHARS "\u0001"]} do_all]]})]) (Com {[VarSub cron]} {[LIT_CHARS -t]} {[DQ [LIT_CHARS "cron "][VarSub time]]} {[DQ [VarSub exec]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) ) ) (Case to_match={[VarSub replace]}, pat_word_list=[[{[LIT_CHARS -]}], [{[LIT_OTHER "*"]}]] (ElseTrue) (Com {[LIT_CHARS cp]} {[DQ [VarSub temp]]} {[DQ [VarSub file]]}) ) )