(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dict) op: assign_op.Equal rhs: {<words>} spids: [13] ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<getopts>} {(SQ <'d:'>)} {<opt>})]) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName '$opt')} arms: [ (case_arm pat_list: [{<d>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dict) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$OPTARG'))} spids: [40] ) ] ) ] spids: [37 38 46 -1] ) (case_arm pat_list: [{<Id.Lit_QMark '?'>}] action: [ (command.Sentence child: (command.Simple words: [{<echo>} {(DQ <'Usage: spell [-d dict] [file ...]'>)}] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [49 50 -1 67] ) ] ) ] ) ) (C {<shift>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$OPTIND')} {<->} {<1>}) ) } ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$dict'))} arms: [ (case_arm pat_list:[{<Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'>}] spids:[94 97 99 -1]) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dict) op: assign_op.Equal rhs: {(DQ <'/usr/lib/dict/'> ($ Id.VSub_DollarName '$dict'))} spids: [104] ) ] ) ] spids: [101 102 -1 110] ) ] ) (command.Pipeline children: [ (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ) ] ) action: [(C {<prep>})] spids: [116 129] ) ] else_action: [ (command.ForEach iter_name: file do_arg_iter: T body: (command.DoGroup children: [(C {<prep>} {(DQ ($ Id.VSub_DollarName '$file'))})] ) ) ] ) ] ) (BraceGroup children: [ (command.Pipeline children: [ (C {<sort>} {<-u>}) (C {<comm>} {<-23>} {<->} {(DQ ($ Id.VSub_DollarName '$dict'))}) ] negated: F ) ] ) ] negated: F ) ] )