(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PATH) op: Equal rhs: {(/sbin) (Lit_Other ":") (/usr/sbin) (Lit_Other ":") (/bin) (Lit_Other ":") (/usr/bin)} spids: [43] ) ] spids: [43] ) (C {(export)} {(PATH)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:scriptname) op: Equal rhs: {(DQ ($ VSub_Number "$0"))} spids: [70] ) ] spids: [70] ) (C {(umask)} {(022)}) (FuncDef name: on_exit body: (BraceGroup children: [ (C {(echo)} { (DQ ("error: '") ($ VSub_Name "$scriptname") ("' exited outside the expected code flow.") ) } ) ] spids: [85] ) spids: [81 84] ) (C {(trap)} {(on_exit)} {(EXIT)}) (C {(trap)} {(DQ (":"))} {(INT)} {(QUIT)} {(TSTP)}) (SimpleCommand words: [{(stty)} {(onlcr)}] redirects: [(Redir op_id:Redir_GreatAnd fd:0 arg_word:{(1)} spids:[131])] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:runlevel) op: Equal rhs: {($ VSub_Name "$RUNLEVEL")} spids: [139] ) ] spids: [139] ) (AndOr children: [ (C {(Lit_Other "[")} {(DQ ($ VSub_Number "$1"))} {(KW_Bang "!") (Lit_Other "=")} {(DQ )} {(Lit_Other "]")} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:runlevel) op: Equal rhs: {($ VSub_Number "$1")} spids: [161] ) ] spids: [161] ) ] op_id: Op_DAmp ) (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$runlevel"))} {(Lit_Other "=")} {(DQ )} {(Lit_Other "]")} ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ("Usage: ") ($ VSub_Name "$scriptname") (" <runlevel>"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[190])] ) (C {(exit)} {(1)}) ] spids: [-1 179] ) ] spids: [-1 198] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:previous) op: Equal rhs: {($ VSub_Name "$PREVLEVEL")} spids: [200] ) ] spids: [200] ) (AndOr children: [ (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$previous"))} {(Lit_Other "=")} {(DQ )} {(Lit_Other "]")}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:previous) op:Equal rhs:{(N)} spids:[218])] spids: [218] ) ] op_id: Op_DAmp ) (C {(export)} {(runlevel)} {(previous)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-f)} {(/etc/default/rcS)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [(C {(.)} {(/etc/default/rcS)})] spids: [-1 241] ) ] spids: [-1 248] ) (C {(export)} {(VERBOSE)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-f)} {(/lib/lsb/init-functions)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [(C {(.)} {(/lib/lsb/init-functions)})] spids: [-1 267] ) ] else_action: [ (FuncDef name: log_action_msg body: (BraceGroup children: [(Sentence child:(C {(echo)} {($ VSub_At "$@")}) terminator:<Op_Semi ";">)] spids: [281] ) spids: [277 280] ) (FuncDef name: log_failure_msg body: (BraceGroup children: [(Sentence child:(C {(echo)} {($ VSub_At "$@")}) terminator:<Op_Semi ";">)] spids: [295] ) spids: [291 294] ) (FuncDef name: log_warning_msg body: (BraceGroup children: [(Sentence child:(C {(echo)} {($ VSub_At "$@")}) terminator:<Op_Semi ";">)] spids: [309] ) spids: [305 308] ) ] spids: [274 318] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CONCURRENCY) op:Equal rhs:{(none)} spids:[342])] spids: [342] ) (AndOr children: [ (C {(test)} {(-s)} {(/etc/init.d/.depend.boot)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CONCURRENCY) op:Equal rhs:{(DQ (none))} spids:[353])] spids: [353] ) ] op_id: Op_DPipe ) (AndOr children: [ (C {(test)} {(-s)} {(/etc/init.d/.depend.start)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CONCURRENCY) op:Equal rhs:{(DQ (none))} spids:[366])] spids: [366] ) ] op_id: Op_DPipe ) (AndOr children: [ (C {(test)} {(-s)} {(/etc/init.d/.depend.stop)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CONCURRENCY) op:Equal rhs:{(DQ (none))} spids:[379])] spids: [379] ) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-e)} {(/etc/init.d/.legacy-bootordering)}) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CONCURRENCY) op: Equal rhs: {(DQ (none))} spids: [397] ) ] spids: [397] ) ] spids: [-1 394] ) ] spids: [-1 402] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children:[(C {(test)} {(-e)} {(/proc/stat)})] negated:True) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(uname)})]) left_token: <Left_CommandSub "$("> spids: [427 429] ) ) } {(Lit_Other "=")} {(DQ (GNU/kFreeBSD))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [(C {(mount)} {(-t)} {(linprocfs)} {(linprocfs)} {(/proc)})] spids: [-1 442] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(uname)})]) left_token: <Left_CommandSub "$("> spids: [461 463] ) ) } {(Lit_Other "=")} {(DQ (GNU))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [(C {(mount)} {(-t)} {(proc)} {(none)} {(/proc)})] spids: [456 476] ) ] spids: [-1 490] ) ] spids: [-1 415] ) ] spids: [-1 492] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-x)} {(/lib/startpar/startpar)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STARTPAR) op: Equal rhs: {(/lib/startpar/startpar)} spids: [509] ) ] spids: [509] ) ] spids: [-1 506] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:STARTPAR) op:Equal rhs:{(startpar)} spids:[515])] spids: [515] ) ] spids: [512 518] ) (AndOr children: [ (SimpleCommand words: [{($ VSub_Name "$STARTPAR")} {(-v)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[524]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[528]) ] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CONCURRENCY) op:Equal rhs:{(DQ (none))} spids:[533])] spids: [533] ) ] op_id: Op_DPipe ) (Case to_match: {(DQ ($ VSub_Name "$CONCURRENCY"))} arms: [ (case_arm pat_list: [{(makefile)} {(startpar)} {(shell)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CONCURRENCY) op: Equal rhs: {(makefile)} spids: [568] ) ] spids: [568] ) (C {(log_action_msg)} {(DQ ("Using makefile-style concurrent boot in runlevel ") ($ VSub_Name "$runlevel"))} ) (FuncDef name: startup body: (BraceGroup children: [ (C {(eval)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {($ VSub_Name "$STARTPAR")} {(-p)} {(4)} {(-t)} {(20)} {(-T)} {(3)} {(-M)} {($ VSub_Number "$1")} {(-P)} {($ VSub_Name "$previous")} {(-R)} {($ VSub_Name "$runlevel")} ) ] ) left_token: <Left_CommandSub "$("> spids: [590 616] ) ) } ) (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Name "$failed_service"))} {(Lit_Other "]")} ) ] action: [ (C {(log_failure_msg)} { (DQ ("startpar: service(s) returned failure: ") ($ VSub_Name "$failed_service") ) } ) ] spids: [-1 634] ) ] spids: [-1 645] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Name "$skipped_service_not_installed"))} {(Lit_Other "]")} ) ] action: [ (C {(log_warning_msg)} { (DQ ("startpar: service(s) skipped, program is not installed: ") ($ VSub_Name "$skipped_service_not_installed") ) } ) ] spids: [-1 662] ) ] spids: [-1 673] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Name "$skipped_service_not_configured"))} {(Lit_Other "]")} ) ] action: [ (C {(log_warning_msg)} { (DQ ("startpar: service(s) skipped, program is not configured: ") ($ VSub_Name "$skipped_service_not_configured") ) } ) ] spids: [-1 690] ) ] spids: [-1 701] ) (C {(unset)} {(failed_service)} {(skipped_service_not_installed)} {(skipped_service_not_configured)} ) ] spids: [584] ) spids: [580 583] ) ] spids: [557 562 717 -1] ) (case_arm pat_list: [{(none)} {(Lit_Other "*")}] action: [ (FuncDef name: startup body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:action) op: Equal rhs: {($ VSub_Number "$1")} spids: [733] ) ] spids: [733] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:scripts) op: Equal rhs: {(DQ ($ VSub_At "$@"))} spids: [740] ) ] spids: [740] ) (ForEach iter_name: script iter_words: [{($ VSub_Name "$scripts")}] do_arg_iter: False body: (DoGroup children: [ (C {($ VSub_Name "$debug")} {(DQ ($ VSub_Name "$script"))} {($ VSub_Name "$action")} ) ] spids: [756 768] ) spids: [751 754] ) ] spids: [730] ) spids: [726 729] ) ] spids: [720 723 774 -1] ) ] spids: [548 554 776] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} {(-d)} {(/etc/rc) ($ VSub_Name "$runlevel") (.d)} {(Lit_Other "]")}) ] action: [ (Case to_match: {(DQ ($ VSub_Name "$runlevel"))} arms: [ (case_arm pat_list: [{(0)} {(6)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ACTION) op: Equal rhs: {(stop)} spids: [812] ) ] spids: [812] ) ] spids: [806 809 816 -1] ) (case_arm pat_list: [{(S)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ACTION) op: Equal rhs: {(start)} spids: [823] ) ] spids: [823] ) ] spids: [819 820 827 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ACTION) op: Equal rhs: {(start)} spids: [834] ) ] spids: [834] ) ] spids: [830 831 838 -1] ) ] spids: [797 803 841] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} {(makefile)} {(Lit_Other "=")} {(DQ ($ VSub_Name "$CONCURRENCY"))} {(Lit_Other "]")} ) ] action: [ (If arms: [ (if_arm cond: [ (AndOr children: [ (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$ACTION"))} {(Lit_Other "=")} {(DQ (start))} {(Lit_Other "]")} ) (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$previous"))} {(KW_Bang "!") (Lit_Other "=")} {(N)} {(Lit_Other "]")} ) ] op_id: Op_DAmp ) ] action: [(C {(startup)} {(stop)})] spids: [-1 899] ) ] spids: [-1 907] ) ] spids: [-1 864] ) (if_arm cond: [ (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$previous"))} {(KW_Bang "!") (Lit_Other "=")} {(N)} {(Lit_Other "]")} ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CURLEVEL) op: Equal rhs: {(DQ )} spids: [933] ) ] spids: [933] ) (ForEach iter_name: s iter_words: [{(/etc/rc) ($ VSub_Name "$runlevel") (.d/K) (Lit_Other "*")}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:level) op: Equal rhs: { (BracedVarSub token: <VSub_Name s> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(Lit_Slash /) (etc) (Lit_Slash /) (rc) ($ VSub_Name "$runlevel") (.d) (Lit_Slash /) (K) } ) spids: [958 969] ) } spids: [957] ) ] spids: [957] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:level) op: Equal rhs: { (BracedVarSub token: <VSub_Name level> suffix_op: (StringUnary op_id: VOp1_DPercent arg_word: {("[a-zA-Z]*")} ) spids: [973 977] ) } spids: [972] ) ] spids: [972] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$level"))} {(Lit_Other "=")} {(DQ ($ VSub_Name "$CURLEVEL"))} {(Lit_Other "]")} ) ] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [-1 997] ) ] spids: [-1 1003] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CURLEVEL) op: Equal rhs: {($ VSub_Name "$level")} spids: [1006] ) ] spids: [1006] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SCRIPTS) op: Equal rhs: {(DQ )} spids: [1010] ) ] spids: [1010] ) (ForEach iter_name: i iter_words: [ {(/etc/rc) ($ VSub_Name "$runlevel") (.d/K) ($ VSub_Name "$level") (Lit_Other "*") } ] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {($ VSub_Name "$i")} {(Lit_Other "]")} ) (ControlFlow token: <ControlFlow_Continue continue> ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:suffix) op: Equal rhs: { (BracedVarSub token: <VSub_Name i> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(Lit_Slash /) (etc) (Lit_Slash /) (rc) ($ VSub_Name "$runlevel") (.d) (Lit_Slash /) ("K[0-9][0-9]") } ) spids: [1068 1079] ) } spids: [1067] ) ] spids: [1067] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:previous_stop) op: Equal rhs: {(/etc/rc) ($ VSub_Name "$previous") (.d/K) (Lit_Other "[") (0-9) (Lit_Other "]") (Lit_Other "[") (0-9) (Lit_Other "]") ($ VSub_Name "$suffix") } spids: [1082] ) ] spids: [1082] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:previous_start) op: Equal rhs: {(/etc/rc) ($ VSub_Name "$previous") (.d/S) (Lit_Other "[") (0-9) (Lit_Other "]") (Lit_Other "[") (0-9) (Lit_Other "]") ($ VSub_Name "$suffix") } spids: [1095] ) ] spids: [1095] ) (AndOr children: [ (C {(Lit_Other "[")} {(-f)} {($ VSub_Name "$previous_stop")} {(Lit_Other "]")} ) (AndOr children: [ (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {($ VSub_Name "$previous_start")} {(Lit_Other "]")} ) (ControlFlow token: <ControlFlow_Continue continue> ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SCRIPTS) op: Equal rhs: {(DQ ($ VSub_Name "$SCRIPTS") (" ") ($ VSub_Name "$i"))} spids: [1158] ) ] spids: [1158] ) ] spids: [1028 1166] ) spids: [1020 -1] ) (C {(startup)} {(stop)} {($ VSub_Name "$SCRIPTS")}) ] spids: [950 1176] ) spids: [943 -1] ) ] spids: [910 926] ) ] spids: [-1 1179] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} {(makefile)} {(Lit_Other "=")} {(DQ ($ VSub_Name "$CONCURRENCY"))} {(Lit_Other "]")} ) ] action: [ (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} {(S)} {(Lit_Other "=")} {(DQ ($ VSub_Name "$runlevel"))} {(Lit_Other "]")} ) ] action: [(C {(startup)} {(boot)})] spids: [-1 1216] ) ] else_action: [(C {(startup)} {($ VSub_Name "$ACTION")})] spids: [1224 1232] ) ] spids: [-1 1198] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CURLEVEL) op:Equal rhs:{(DQ )} spids:[1246])] spids: [1246] ) (ForEach iter_name: s iter_words: [{(/etc/rc) ($ VSub_Name "$runlevel") (.d/S) (Lit_Other "*")}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:level) op: Equal rhs: { (BracedVarSub token: <VSub_Name s> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(Lit_Slash /) (etc) (Lit_Slash /) (rc) ($ VSub_Name "$runlevel") (.d) (Lit_Slash /) (S) } ) spids: [1271 1282] ) } spids: [1270] ) ] spids: [1270] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:level) op: Equal rhs: { (BracedVarSub token: <VSub_Name level> suffix_op: (StringUnary op_id: VOp1_DPercent arg_word: {("[a-zA-Z]*")} ) spids: [1286 1290] ) } spids: [1285] ) ] spids: [1285] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$level"))} {(Lit_Other "=")} {(DQ ($ VSub_Name "$CURLEVEL"))} {(Lit_Other "]")} ) ] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [-1 1310] ) ] spids: [-1 1316] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CURLEVEL) op: Equal rhs: {($ VSub_Name "$level")} spids: [1319] ) ] spids: [1319] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SCRIPTS) op: Equal rhs: {(DQ )} spids: [1323] ) ] spids: [1323] ) (ForEach iter_name: i iter_words: [ {(/etc/rc) ($ VSub_Name "$runlevel") (.d/S) ($ VSub_Name "$level") (Lit_Other "*") } ] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {($ VSub_Name "$i")} {(Lit_Other "]")} ) (ControlFlow token: <ControlFlow_Continue continue> ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:suffix) op: Equal rhs: { (BracedVarSub token: <VSub_Name i> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(Lit_Slash /) (etc) (Lit_Slash /) (rc) ($ VSub_Name "$runlevel") (.d) (Lit_Slash /) ("S[0-9][0-9]") } ) spids: [1361 1372] ) } spids: [1360] ) ] spids: [1360] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$previous"))} {(KW_Bang "!") (Lit_Other "=")} {(N)} {(Lit_Other "]")} ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:stop) op: Equal rhs: {(/etc/rc) ($ VSub_Name "$runlevel") (.d/K) (Lit_Other "[") (0-9) (Lit_Other "]") (Lit_Other "[") (0-9) (Lit_Other "]") ($ VSub_Name "$suffix") } spids: [1410] ) ] spids: [1410] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:previous_start) op: Equal rhs: {(/etc/rc) ($ VSub_Name "$previous") (.d/S) (Lit_Other "[") (0-9) (Lit_Other "]") (Lit_Other "[") (0-9) (Lit_Other "]") ($ VSub_Name "$suffix") } spids: [1423] ) ] spids: [1423] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(start)} {(Lit_Other "=")} {(DQ ($ VSub_Name "$ACTION"))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (AndOr children: [ (C {(Lit_Other "[")} {(-f)} {($ VSub_Name "$previous_start")} {(Lit_Other "]")} ) (AndOr children: [ (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {($ VSub_Name "$stop")} {(Lit_Other "]")} ) (ControlFlow token: <ControlFlow_Continue continue> ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] spids: [-1 1472] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:previous_stop) op: Equal rhs: {(/etc/rc) ($ VSub_Name "$previous") (.d/K) (Lit_Other "[") (0-9) (Lit_Other "]") (Lit_Other "[") (0-9) (Lit_Other "]") ($ VSub_Name "$suffix") } spids: [1511] ) ] spids: [1511] ) (AndOr children: [ (C {(Lit_Other "[")} {(-f)} {($ VSub_Name "$previous_stop")} {(Lit_Other "]")} ) (AndOr children: [ (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {($ VSub_Name "$previous_start")} {(Lit_Other "]")} ) (ControlFlow token: <ControlFlow_Continue continue> ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] spids: [1500 1569] ) ] spids: [-1 1391] ) ] spids: [-1 1573] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SCRIPTS) op: Equal rhs: {(DQ ($ VSub_Name "$SCRIPTS") (" ") ($ VSub_Name "$i"))} spids: [1576] ) ] spids: [1576] ) ] spids: [1341 1584] ) spids: [1333 -1] ) (C {(startup)} {($ VSub_Name "$ACTION")} {($ VSub_Name "$SCRIPTS")}) ] spids: [1263 1594] ) spids: [1256 -1] ) ] spids: [1235 1597] ) ] spids: [-1 794] ) ] spids: [-1 1599] ) (C {(trap)} {(-)} {(EXIT)}) (C {(exit)} {(0)}) ] )