(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tid) op: assign_op.Equal rhs: {(DQ <'sshd config parse'>)} spids: [7] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<config_defined>} {<HAVE_STRUCT_IN6_ADDR>})] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SKIP_IPV6) op: assign_op.Equal rhs: {<yes>} spids: [29] ) ] ) ] spids: [16 26] ) ] ) (command.Simple words: [{<grep>} {(DQ <'HostKey '>)} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config'>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$OBJ') <'/sshd_config_minimal'>} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SSHD_KEYS) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<cat>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config_minimal'>}) ) ) } spids: [62] ) ] ) (C {<verbose>} {(DQ <'reparse minimal config'>)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Subshell child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [ {($ Id.VSub_DollarName '$SUDO')} {(${ Id.VSub_Name SSHD)} {<-T>} {<-f>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config_minimal'>} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.1'>} ) ] do_fork: T ) (command.Simple words: [ {($ Id.VSub_DollarName '$SUDO')} {(${ Id.VSub_Name SSHD)} {<-T>} {<-f>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.1'>} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.2'>} ) ] do_fork: T ) (C {<diff>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.1'>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.2'>} ) ] ) ) (C {<fail>} {(DQ <'reparse minimal config'>)}) ] ) (C {<verbose>} {(DQ <'reparse regress config'>)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Subshell child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [ {($ Id.VSub_DollarName '$SUDO')} {(${ Id.VSub_Name SSHD)} {<-T>} {<-f>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config'>} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.1'>} ) ] do_fork: T ) (command.Simple words: [ {($ Id.VSub_DollarName '$SUDO')} {(${ Id.VSub_Name SSHD)} {<-T>} {<-f>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.1'>} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.2'>} ) ] do_fork: T ) (C {<diff>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.1'>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.2'>} ) ] ) ) (C {<fail>} {(DQ <'reparse regress config'>)}) ] ) (C {<verbose>} {(DQ <'listenaddress order'>)}) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.0'>} ) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOD>} here_end_span_id: 227 stdin_parts: [<'listenaddress 1.2.3.4:1234\n'> <'listenaddress 1.2.3.4:5678\n'>] ) ) ] do_fork: T ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<X> (${ Id.VSub_Name SKIP_IPV6)} {<Id.Lit_Equals '='>} {<Xyes>} {<Id.Lit_RBracket ']'>} ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.0'>} ) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOD>} here_end_span_id: 256 stdin_parts: [<'listenaddress [::1]:1234\n'> <'listenaddress [::1]:5678\n'>] ) ) ] do_fork: T ) ] ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.1'>} ) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOD>} here_end_span_id: 283 stdin_parts: [ (${ Id.VSub_Name SSHD_KEYS) <'\n'> <'addressfamily any\n'> <'port 1234\n'> <'port 5678\n'> <'listenaddress 1.2.3.4\n'> ] ) ) ] do_fork: T ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<X> (${ Id.VSub_Name SKIP_IPV6)} {<Id.Lit_Equals '='>} {<Xyes>} {<Id.Lit_RBracket ']'>} ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.1'>} ) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOD>} here_end_span_id: 311 stdin_parts: [<'listenaddress ::1\n'>] ) ) ] do_fork: T ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Subshell child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$SUDO')} {(${ Id.VSub_Name SSHD)} {<-T>} {<-f>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.1'>} ) (command.Simple words: [{<grep>} {(SQ <'listenaddress '>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.2'>} ) ] do_fork: T ) ] negated: F ) (C {<diff>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.0'>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.2'>} ) ] ) ) (C {<fail>} {(DQ <'listenaddress order 1'>)}) ] ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.1'>} ) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOD>} here_end_span_id: 385 stdin_parts: [ (${ Id.VSub_Name SSHD_KEYS) <'\n'> <'listenaddress 1.2.3.4\n'> <'port 1234\n'> <'port 5678\n'> <'addressfamily any\n'> ] ) ) ] do_fork: T ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<X> (${ Id.VSub_Name SKIP_IPV6)} {<Id.Lit_Equals '='>} {<Xyes>} {<Id.Lit_RBracket ']'>} ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.1'>} ) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOD>} here_end_span_id: 413 stdin_parts: [<'listenaddress ::1\n'>] ) ) ] do_fork: T ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Subshell child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$SUDO')} {(${ Id.VSub_Name SSHD)} {<-T>} {<-f>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.1'>} ) (command.Simple words: [{<grep>} {(SQ <'listenaddress '>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.2'>} ) ] do_fork: T ) ] negated: F ) (C {<diff>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.0'>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.2'>} ) ] ) ) (C {<fail>} {(DQ <'listenaddress order 2'>)}) ] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_config.'> <Id.Lit_LBracket '['> <012> <Id.Lit_RBracket ']'>} ) ] )