(command.CommandList children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-lt>} {<1>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Sentence child: (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <' '> ($ Id.VSub_Number 0) <' <driver source (e.g., if_em.c)>'>)} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) terminator: <Id.Op_Semi _> ) ] spids: [107 119] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike '__ifp__='> pairs: [ (AssignPair left: <Id.Lit_VarLike '__ifp__='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__ifp__='> name:__ifp__) op: assign_op.Equal rhs: {(DQ <ifp>)} ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike 'file='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'file='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShFunction name_tok: <rotateCursor> name: rotateCursor body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName toggle)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} { (DQ <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <' '> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {(DQ <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b>)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'toggle='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'toggle='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'toggle='> name:toggle) op: assign_op.Equal rhs: {(DQ <2>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <2> pattern: (pat.Words words:[{<2>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <printf> more_env: [] words: [{<printf>} {(DQ <' | '>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'toggle='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'toggle='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'toggle='> name:toggle) op: assign_op.Equal rhs: {(DQ <3>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <3> pattern: (pat.Words words:[{<3>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <printf> more_env: [] words: [{<printf>} {(DQ <' / '>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'toggle='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'toggle='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'toggle='> name:toggle) op: assign_op.Equal rhs: {(DQ <4>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <printf> more_env: [] words: [{<printf>} {(DQ <' - '>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'toggle='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'toggle='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'toggle='> name:toggle) op: assign_op.Equal rhs: {(DQ <1>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <handle_set> name: handle_set body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'set='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'set='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'set='> name:set) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {(DQ ($ Id.VSub_DollarName __ifp__) <'->.* = '>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_DollarName set))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'word='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'word='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'word='> name:word) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {<-F>} {(DQ <if_>)} {(SQ <' { print $2 }'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {<-F> (DQ <' ='>)} {(SQ <'{ print $1 }'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'value='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'value='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {<-F>} {(DQ <'='>)} {(SQ <'{ print $2 }'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/;//g'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'new='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'new='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<if_set> ($ Id.VSub_DollarName word) (DQ <Id.Lit_BadBackslash '\\'> <'('> ($ Id.VSub_DollarName __ifp__) <','> ) ($ Id.VSub_DollarName value) (DQ <');'>) } ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'new='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'new='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName new)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/&/\\\\&/'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'old='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'old='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old='> name:old) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/^[ \t]*//'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e> (SQ <'s/'>) ($ Id.VSub_DollarName old) (SQ <'/'>) ($ Id.VSub_DollarName new) (SQ <'/g'>) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [337 352] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <handle_inc> name: handle_inc body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'inc='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'inc='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'inc='> name:inc) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} { (DQ ($ Id.VSub_DollarName __ifp__) <'->.*++'> <Id.Lit_BadBackslash '\\'> <'|++'> ($ Id.VSub_DollarName __ifp__) <'->.*'> ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_DollarName inc))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'word='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'word='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'word='> name:word) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {<-F> (DQ <if_>)} {(SQ <'{ print $2 }'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [ {<awk>} {<-F> (DQ <Id.Lit_BadBackslash '\\'> <'+'>)} {(SQ <'{ print $1}'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'value='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'value='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value) op: assign_op.Equal rhs: {(SQ <' 1'>)} ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike 'old='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'old='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old='> name:old) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/^[ \t]*//'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'new='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'new='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<if_inc> ($ Id.VSub_DollarName word) (DQ <Id.Lit_BadBackslash '\\'> <'('> ($ Id.VSub_DollarName __ifp__) <','> ) ($ Id.VSub_DollarName value) (DQ <');'>) } ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'new='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'new='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName new)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/&/\\\\&/'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e> (SQ <'s/'>) ($ Id.VSub_DollarName old) (SQ <'/'>) ($ Id.VSub_DollarName new) (SQ <'/g'>) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Sentence child: (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) terminator: <Id.Op_Semi _> ) ] spids: [568 583] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Sentence child: (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>}) terminator: <Id.Op_Semi _> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <handle_add> name: handle_add body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'add='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'add='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'add='> name:add) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {(DQ ($ Id.VSub_DollarName __ifp__) <'->.*+= '>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_DollarName add))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'word='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'word='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'word='> name:word) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {<-F> (DQ <if_>)} {(SQ <'{ print $2 }'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {(SQ <'{ print $1}'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'value='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'value='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {<-F> (DQ <'='>)} {(SQ <'{ print $2}'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/;//g'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'new='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'new='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<if_inc> ($ Id.VSub_DollarName word) (DQ <Id.Lit_BadBackslash '\\'> <'('> ($ Id.VSub_DollarName __ifp__) <','> ($ Id.VSub_DollarName value) <');'> ) } ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'new='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'new='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName new)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/&/\\\\&/'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'old='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'old='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old='> name:old) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/^[ \t]*//'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e> (SQ <'s/'>) ($ Id.VSub_DollarName old) (SQ <'/'>) ($ Id.VSub_DollarName new) (SQ <'/g'>) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [766 781] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Sentence child: (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>}) terminator: <Id.Op_Semi _> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <handle_or> name: handle_or body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'or='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'or='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'or='> name:or) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {(DQ ($ Id.VSub_DollarName __ifp__) <'->.*|= '>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_DollarName or))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'word='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'word='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'word='> name:word) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {<-F> (DQ <if_>)} {(SQ <'{ print $2 }'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {(SQ <'{ print $1}'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'value='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'value='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {<-F> (DQ <'='>)} {(SQ <'{ print $2}'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/;//g'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'new='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'new='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<if_set> (${ Id.VSub_Name word) <bit> (DQ <'('> ($ Id.VSub_DollarName __ifp__) <','> ($ Id.VSub_DollarName value) <', 0);'> ) } ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'new='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'new='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName new)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/&/\\\\&/'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'old='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'old='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old='> name:old) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/^[ \t]*//'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e> (SQ <'s/'>) ($ Id.VSub_DollarName old) (SQ <'/'>) ($ Id.VSub_DollarName new) (SQ <'/g'>) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Sentence child: (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) terminator: <Id.Op_Semi _> ) ] spids: [979 994] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Sentence child: (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>}) terminator: <Id.Op_Semi _> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <handle_and> name: handle_and body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'or='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'or='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'or='> name:or) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {(DQ ($ Id.VSub_DollarName __ifp__) <'->.*&= '>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_DollarName or))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'word='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'word='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'word='> name:word) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {<-F> (DQ <if_>)} {(SQ <'{ print $2 }'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {(SQ <'{ print $1}'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'value='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'value='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {<-F> (DQ <'='>)} {(SQ <'{ print $2}'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/;//g'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'value='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'value='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName value)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e> (SQ <'s/~//g'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'new='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'new='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<if_set> (${ Id.VSub_Name word) <bit> (DQ <Id.Lit_BadBackslash '\\'> <'('> ($ Id.VSub_DollarName __ifp__) <', 0,'> ($ Id.VSub_DollarName value) <');'> ) } ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'new='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'new='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName new)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/&/\\\\&/'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'old='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'old='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old='> name:old) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/^[ \t]*//'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e> (SQ <'s/'>) ($ Id.VSub_DollarName old) (SQ <'/'>) ($ Id.VSub_DollarName new) (SQ <'/g'>) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Sentence child: (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) terminator: <Id.Op_Semi _> ) ] spids: [1199 1214] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Sentence child: (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>}) terminator: <Id.Op_Semi _> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <handle_toggle> name: handle_toggle body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) 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.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {(DQ <Id.Lit_BadBackslash '\\'> <'^='>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(SQ <'s/'>) (DQ ($ Id.VSub_DollarName __ifp__)) (SQ <'->if_\\(.*\\) ^=\\(.*\\);/if_toggle\\1('>) (DQ ($ Id.VSub_DollarName __ifp__)) (SQ <',\\2);/g'>) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Sentence child: (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) terminator: <Id.Op_Semi _> ) ] spids: [1419 1449] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <handle_misc> name: handle_misc body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'get='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'get='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'get='> name:get) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} { (DQ <if_capabilities> <Id.Lit_BadBackslash '\\'> <'|if_flags'> <Id.Lit_BadBackslash '\\'> <'|if_softc'> <Id.Lit_BadBackslash '\\'> <'|if_capenable'> <Id.Lit_BadBackslash '\\'> <'|if_mtu'> <Id.Lit_BadBackslash '\\'> <'|if_drv_flags'> ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_DollarName get))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'word='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'word='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'word='> name:word) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [ {<awk>} {<-F> (DQ ($ Id.VSub_DollarName __ifp__) <'->if_'>)} {(SQ <'{ print $2 }'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e> (SQ <'s/[^a-zA-Z0-9_]/\\@/'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [ {<awk>} {<-F> (DQ <Id.Lit_BadBackslash '\\'> <'@'>)} {(SQ <'{ print $1}'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'old='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'old='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'old='> name:old) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ ($ Id.VSub_DollarName __ifp__) <'->if_'>) (${ Id.VSub_Name word) } ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'new='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'new='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <if_get>) (${ Id.VSub_Name word) (DQ <'('> ($ Id.VSub_DollarName __ifp__) <')'>) } ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'new='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'new='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName new)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/&/\\\\&/'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e> (SQ <'s/'>) ($ Id.VSub_DollarName old) (SQ <'/'>) ($ Id.VSub_DollarName new) (SQ <'/g'>) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Sentence child: (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) terminator: <Id.Op_Semi _> ) ] spids: [1565 1580] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Sentence child: (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>}) terminator: <Id.Op_Semi _> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <replace_str> name: replace_str body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'orig='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'orig='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'orig='> name:orig) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'new='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'new='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new='> name:new) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(SQ <'s/'>) (DQ ($ Id.VSub_DollarName orig)) (SQ <'\\(.*\\)/'>) (DQ ($ Id.VSub_DollarName new)) (SQ <'\\1/g'>) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Sentence child: (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>}) terminator: <Id.Op_Semi _> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <handle_special> name: handle_special body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.Simple blame_tok: <replace_str> more_env: [] words: [ {<replace_str>} {($ Id.VSub_DollarName line)} { (DQ <'('> <Id.Lit_BadBackslash '\\'> <'*'> ($ Id.VSub_DollarName __ifp__) <'->if_input)'> ) } {(DQ <if_input>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <replace_str> more_env: [] words: [ {<replace_str>} {($ Id.VSub_DollarName line)} {(DQ <if_setinit>)} {(DQ <if_setinitfn>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <replace_str> more_env: [] words: [ {<replace_str>} {($ Id.VSub_DollarName line)} {(DQ <if_setioctl>)} {(DQ <if_setioctlfn>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <replace_str> more_env: [] words: [ {<replace_str>} {($ Id.VSub_DollarName line)} {(DQ <if_getdrv_flags>)} {(DQ <if_getdrvflags>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <replace_str> more_env: [] words: [ {<replace_str>} {($ Id.VSub_DollarName line)} {(DQ <if_setdrv_flagsbit>)} {(DQ <if_setdrvflagbits>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <replace_str> more_env: [] words: [ {<replace_str>} {($ Id.VSub_DollarName line)} {(DQ <if_setstart>)} {(DQ <if_setstartfn>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <replace_str> more_env: [] words: [ {<replace_str>} {($ Id.VSub_DollarName line)} {(DQ <if_sethwassistbit>)} {(DQ <if_sethwassistbits>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <replace_str> more_env: [] words: [ {<replace_str>} {($ Id.VSub_DollarName line)} {(DQ <ifmedia_init>)} {(DQ <ifmedia_init_drv>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <replace_str> more_env: [] words: [ {<replace_str>} {($ Id.VSub_DollarName line)} {(DQ <'IFQ_DRV_IS_EMPTY(&'> ($ Id.VSub_DollarName __ifp__) <'->if_snd)'>)} {(DQ <'if_sendq_empty('> ($ Id.VSub_DollarName __ifp__) <')'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <replace_str> more_env: [] words: [ {<replace_str>} {($ Id.VSub_DollarName line)} {(DQ <'IFQ_DRV_PREPEND(&'> ($ Id.VSub_DollarName __ifp__) <'->if_snd'>)} {(DQ <'if_sendq_prepend('> ($ Id.VSub_DollarName __ifp__))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <replace_str> more_env: [] words: [ {<replace_str>} {($ Id.VSub_DollarName line)} {(DQ <'IFQ_SET_READY(&ifp->if_snd)'>)} {(DQ <'if_setsendqready('> ($ Id.VSub_DollarName __ifp__) <')'>)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(SQ <'s/IFQ_SET_MAXLEN(&'>) ($ Id.VSub_DollarName __ifp__) (SQ <'->if_snd, \\(.*\\))/if_setsendqlen('>) ($ Id.VSub_DollarName __ifp__) (SQ <', \\1)/g'>) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(SQ <'s/IFQ_DRV_DEQUEUE(&'>) ($ Id.VSub_DollarName __ifp__) (SQ <'->if_snd, \\(.*\\))/\\1 = if_dequeue('>) ($ Id.VSub_DollarName __ifp__) (SQ <')/g'>) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-e>} {($ Id.VSub_DollarName file) <.tmp>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {($ Id.VSub_DollarName file) <.tmp>}] redirects: [] do_fork: T ) ] spids: [2051 2062] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'IFS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IFS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<-n>} {(DQ <'Conversion for '> ($ Id.VSub_DollarName file) <' started, please wait: '>)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'FAIL_PAT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FAIL_PAT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FAIL_PAT='> name:FAIL_PAT) op: assign_op.Equal rhs: {(DQ <'XXX - DRVAPI'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'count='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'count='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'count='> name:count) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<-r>} {<line>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'count='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'count='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'count='> name:count) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <expr> more_env: [] words: [ {<expr>} {($ Id.VSub_DollarName count)} {<Id.Lit_Other '+'>} {<1>} ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <rotateCursor> more_env: [] words: [{<rotateCursor>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'pat='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pat='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pat='> name:pat) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {(DQ ($ Id.VSub_DollarName __ifp__) <'->'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName pat))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'pat='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'pat='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pat='> name:pat) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} {(DQ ($ Id.VSub_DollarName __ifp__) <'->'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName pat)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} {(DQ ($ Id.VSub_DollarName FAIL_PAT))} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Sentence child: (command.ControlFlow keyword:<Id.ControlFlow_Break break>) terminator: <Id.Op_Semi _> ) ] spids: [2180 2207] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <handle_set> more_env: [] words: [{<handle_set>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <handle_inc> more_env: [] words: [{<handle_inc>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) ] spids: [2224 2238] ) ] else_action: [] 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.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <handle_add> more_env: [] words: [{<handle_add>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) ] spids: [2251 2265] ) ] else_action: [] 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.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <handle_or> more_env: [] words: [{<handle_or>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) ] spids: [2277 2291] ) ] else_action: [] 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.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <handle_and> more_env: [] words: [{<handle_and>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) ] spids: [2303 2317] ) ] else_action: [] 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.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <handle_toggle> more_env: [] words: [{<handle_toggle>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) ] spids: [2329 2343] ) ] else_action: [] 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.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <handle_misc> more_env: [] words: [{<handle_misc>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) ] spids: [2355 2369] ) ] else_action: [] 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.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <handle_special> more_env: [] words: [{<handle_special>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) ] spids: [2382 2396] ) ] else_action: [] 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.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} {(DQ ($ Id.VSub_DollarName __ifp__) <'->'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(SQ <'s:$: \\/* '>) (${ Id.VSub_Name FAIL_PAT) (SQ <' *\\/:g'>) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) ] spids: [2409 2437] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName line))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(SQ <'s:VLAN_CAPABILITIES('>) ($ Id.VSub_DollarName __ifp__) (SQ <'):if_vlancap('>) ($ Id.VSub_DollarName __ifp__) (SQ <'):g'>) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {(DQ <'struct ifnet'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'line='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'line='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'line='> name:line) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(SQ <'s/struct ifnet[ \\t]*\\*/if_t /g'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) ] spids: [2509 2536] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName line))}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file) <.tmp>} ) ] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>} {(DQ )}] redirects:[] do_fork:T) (command.ShAssignment left: <Id.Lit_VarLike 'count='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'count='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'count='> name:count) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} {($ Id.VSub_DollarName FAIL_PAT)} {($ Id.VSub_DollarName file) <.tmp>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <wc> more_env: [] words: [{<wc>} {<-l>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName count)} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ ($ Id.VSub_DollarName count) <' lines could not be converted to DRVAPI'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'Look for /* '> ($ Id.VSub_DollarName FAIL_PAT) <' */ in the converted file'>)} ] redirects: [] do_fork: T ) ] spids: [2602 2614] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'original '> ($ Id.VSub_DollarName file) <' has been moved to '> ($ Id.VSub_DollarName file) <.orig> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mv> more_env: [] words: [{<mv>} {($ Id.VSub_DollarName file)} {($ Id.VSub_DollarName file) <.orig>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mv> more_env: [] words: [{<mv>} {($ Id.VSub_DollarName file) <.tmp>} {($ Id.VSub_DollarName file)}] redirects: [] do_fork: T ) ] )