(command.CommandList children: [ (command.ShFunction name: source_em body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'current_script='> (DQ ($ Id.VSub_DollarName '$em_script'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:em_script) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [18] ) ] ) (C {<.>} {($ Id.VSub_DollarName '$em_script')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:em_script) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$current_script')} spids: [27] ) ] ) ] ) ) (command.ShFunction name: fragment body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (braced_var_sub token: <Id.VSub_Name BASH_VERSINFO> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>}) ) } {<-ge>} {<3>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'lineno='> (word_part.ExprSub left: <Id.Left_DollarBracket '$['> child: (expr.Binary op: <Id.Arith_Plus _> left: (braced_var_sub token: <Id.VSub_Name BASH_LINENO> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) right: (Const Id.Expr_DecInt 1) ) ) } ) (command.Simple words: [ {<echo>} { (DQ <'#line '> ($ Id.VSub_DollarName '$lineno') <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ($ Id.VSub_DollarName '$em_script') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<e> (${ Id.VSub_Name EMULATION_NAME) <.c>} ) ] do_fork: T ) ] spids: [39 57] ) ] ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<e> (${ Id.VSub_Name EMULATION_NAME) <.c>} ) ] do_fork: T ) ] ) ) ] )