(command.CommandList children: [ (command.Case to_match: {($ Id.VSub_Pound '$#')} arms: [ (case_arm pat_list: [{<0>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:flag) op: assign_op.Equal rhs: (word.Empty) spids: [28] ) ] ) terminator: <Id.Op_Semi _> ) (C {<set>} {<-> ($ Id.VSub_Hyphen '$-')} {<'/dev'>}) ] spids: [25 26 38 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:flag) op: assign_op.Equal rhs: {<d>} spids: [43] ) ] ) ] spids: [40 41 46 -1] ) ] ) (command.Pipeline children: [ (C {<ls>} {<-l> ($ Id.VSub_DollarName '$flag')} {($ Id.VSub_Star '$*')}) (C {<sed>} {<-e>} {(SQ <'/^total/d'>)} {<-e>} {(SQ <'/^l/d'>)} {<-e>} {(SQ <'/^[^bc]/s/.* /BAD BAD /'>)} {<-e>} {(SQ <'/^[bc]/s/.* \\([0-9][0-9]*\\), *\\([0-9][0-9]*\\).* /\\1 \\2 /'>)} ) (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ex) op: assign_op.Equal rhs: {<0>} spids: [98] ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<read>} {<major>} {<minor>} {<path>})]) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName '$path')} arms: [ (case_arm pat_list: [{<'/'> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:name) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$path')} {<Id.Lit_Colon ':'>} {(SQ <'.*/\\(.*\\)$'>)} ) ) } spids: [129] ) ] ) ] spids: [125 127 149 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:name) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$path')} spids: [155] ) ] ) ] spids: [152 153 -1 159] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: (word.Empty) spids: [162] ) (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: (word.Empty) spids: [164] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$major')} arms: [ (case_arm pat_list: [{<3>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ctrlr) op: assign_op.Equal rhs: {<0>} spids: [181] ) ] ) ] spids: [178 179 184 -1] ) (case_arm pat_list: [{<8>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ctrlr) op: assign_op.Equal rhs: {<1>} spids: [190] ) ] ) ] spids: [187 188 193 -1] ) (case_arm pat_list: [{<10>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ctrlr) op: assign_op.Equal rhs: {<2>} spids: [199] ) ] ) ] spids: [196 197 202 -1] ) (case_arm pat_list: [{<12>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ctrlr) op: assign_op.Equal rhs: {<3>} spids: [208] ) ] ) ] spids: [205 206 211 -1] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$major') <Id.Lit_Comma ','> ($ Id.VSub_DollarName '$minor') } arms: [ (case_arm pat_list: [{<1> <Id.Lit_Comma ','> <0>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'RAM disk'>)} spids: [232] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<ram>} spids: [237] ) ] ) ] spids: [227 230 241 -1] ) (case_arm pat_list: [{<1> <Id.Lit_Comma ','> <1>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <memory>)} spids: [249] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<mem>} spids: [254] ) ] ) ] spids: [244 247 258 -1] ) (case_arm pat_list: [{<1> <Id.Lit_Comma ','> <2>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'kernel memory'>)} spids: [266] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<kmem>} spids: [271] ) ] ) ] spids: [261 264 275 -1] ) (case_arm pat_list: [{<1> <Id.Lit_Comma ','> <3>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'null device, data sink'>)} spids: [283] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<null>} spids: [288] ) ] ) ] spids: [278 281 292 -1] ) (case_arm pat_list: [{<1> <Id.Lit_Comma ','> <4>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'boot device loaded from boot image'>)} spids: [300] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<boot>} spids: [305] ) ] ) ] spids: [295 298 309 -1] ) (case_arm pat_list: [{<1> <Id.Lit_Comma ','> <5>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'null byte stream generator'>)} spids: [317] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<zero>} spids: [322] ) ] ) ] spids: [312 315 326 -1] ) (case_arm pat_list: [{<1> <Id.Lit_Comma ','> <6>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'boot image RAM disk'>)} spids: [334] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<imgrd>} spids: [339] ) ] ) ] spids: [329 332 343 -1] ) (case_arm pat_list: [ {<1> <Id.Lit_Comma ','> <Id.Lit_LBracket '['> <789> <Id.Lit_RBracket ']'>} {<1> <Id.Lit_Comma ','> <1> <Id.Lit_LBracket '['> <012> <Id.Lit_RBracket ']'>} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ramdisk) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<->} {<7>}) ) } spids: [361] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'RAM disk '> ($ Id.VSub_DollarName '$ramdisk'))} spids: [375] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<ram> ($ Id.VSub_DollarName '$ramdisk')} spids: [381] ) ] ) ] spids: [346 358 386 -1] ) (case_arm pat_list: [{<2> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:drive) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<Id.Lit_Other '%'>} {<4>} ) ) } spids: [394] ) ] ) (command.Case to_match: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<->} {($ Id.VSub_DollarName '$drive')} ) ) } arms: [ (case_arm pat_list: [{<0>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(SQ <'auto density'>)} spids: [428] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {(DQ <fd> ($ Id.VSub_DollarName '$drive'))} spids: [433] ) ] ) ] spids: [425 426 440 -1] ) (case_arm pat_list: [{<4>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(SQ <'360k, 5.25"'>)} spids: [446] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {(DQ <pc> ($ Id.VSub_DollarName '$drive'))} spids: [451] ) ] ) ] spids: [443 444 458 -1] ) (case_arm pat_list: [{<8>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(SQ <'1.2M, 5.25"'>)} spids: [464] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {(DQ <at> ($ Id.VSub_DollarName '$drive'))} spids: [469] ) ] ) ] spids: [461 462 476 -1] ) (case_arm pat_list: [{<12>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(SQ <'360k in 720k, 5.25"'>)} spids: [482] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {(DQ <qd> ($ Id.VSub_DollarName '$drive'))} spids: [487] ) ] ) ] spids: [479 480 494 -1] ) (case_arm pat_list: [{<16>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(SQ <'720k, 3.5"'>)} spids: [500] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {(DQ <ps> ($ Id.VSub_DollarName '$drive'))} spids: [505] ) ] ) ] spids: [497 498 512 -1] ) (case_arm pat_list: [{<20>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(SQ <'360k in 1.2M, 5.25"'>)} spids: [518] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {(DQ <pat> ($ Id.VSub_DollarName '$drive'))} spids: [523] ) ] ) ] spids: [515 516 530 -1] ) (case_arm pat_list: [{<24>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(SQ <'720k in 1.2M, 5.25"'>)} spids: [536] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {(DQ <qh> ($ Id.VSub_DollarName '$drive'))} spids: [541] ) ] ) ] spids: [533 534 548 -1] ) (case_arm pat_list: [{<28>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(SQ <'1.44M, 3.5"'>)} spids: [554] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {(DQ <PS> ($ Id.VSub_DollarName '$drive'))} spids: [559] ) ] ) ] spids: [551 552 566 -1] ) (case_arm pat_list: [{<112>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(SQ <'auto partition 0'>)} spids: [572] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {(DQ <fd> (${ Id.VSub_Name drive) <p0>)} spids: [577] ) ] ) ] spids: [569 570 587 -1] ) (case_arm pat_list: [{<116>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(SQ <'auto partition 1'>)} spids: [593] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {(DQ <fd> (${ Id.VSub_Name drive) <p1>)} spids: [598] ) ] ) ] spids: [590 591 608 -1] ) (case_arm pat_list: [{<120>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(SQ <'auto partition 2'>)} spids: [614] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {(DQ <fd> (${ Id.VSub_Name drive) <p2>)} spids: [619] ) ] ) ] spids: [611 612 629 -1] ) (case_arm pat_list: [{<124>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(SQ <'auto partition 3'>)} spids: [635] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {(DQ <fd> (${ Id.VSub_Name drive) <p3>)} spids: [640] ) ] ) ] spids: [632 633 650 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<BAD>} spids: [656] ) ] ) ] spids: [653 654 -1 660] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: { (DQ <'floppy drive '> ($ Id.VSub_DollarName '$drive') <' ('> ($ Id.VSub_DollarName '$des') <')'> ) } spids: [663] ) ] ) ] spids: [389 392 673 -1] ) (case_arm pat_list: [ {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <Id.Lit_LBracket '['> <05> <Id.Lit_RBracket ']'> } {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <Id.Lit_LBracket '['> <123> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <05> <Id.Lit_RBracket ']'> } {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <Id.Lit_LBracket '['> <05> <Id.Lit_RBracket ']'> } {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <Id.Lit_LBracket '['> <123> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <05> <Id.Lit_RBracket ']'> } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:drive) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<'/'>} {<5>}) ) } spids: [718] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: { (DQ <'controller '> ($ Id.VSub_DollarName '$ctrlr') <' disk '> ($ Id.VSub_DollarName '$drive') ) } spids: [732] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<c> (${ Id.VSub_Name ctrlr) <d> (${ Id.VSub_Name drive)} spids: [740] ) ] ) ] spids: [676 715 751 -1] ) (case_arm pat_list: [ {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <Id.Lit_QMark '?'> } {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <Id.Lit_LBracket '['> <123> <Id.Lit_RBracket ']'> <Id.Lit_QMark '?'> } {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <Id.Lit_QMark '?'> } {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <Id.Lit_LBracket '['> <123> <Id.Lit_RBracket ']'> <Id.Lit_QMark '?'> } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:drive) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<'/'>} {<5>}) ) } spids: [788] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:par) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<Id.Lit_Other '%'>} {<5>} {<->} {<1>} ) ) } spids: [802] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: { (DQ <'controller '> ($ Id.VSub_DollarName '$ctrlr') <' disk '> ($ Id.VSub_DollarName '$drive') <' partition '> ($ Id.VSub_DollarName '$par') ) } spids: [820] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<c> (${ Id.VSub_Name ctrlr) <d> (${ Id.VSub_Name drive) <p> (${ Id.VSub_Name par) } spids: [831] ) ] ) ] spids: [754 785 846 -1] ) (case_arm pat_list: [ {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <12> <Id.Lit_LBracket '['> <89> <Id.Lit_RBracket ']'> } {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <1> <Id.Lit_LBracket '['> <3-9> <Id.Lit_RBracket ']'> <Id.Lit_QMark '?'> } {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <2> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> } {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <12> <Id.Lit_LBracket '['> <89> <Id.Lit_RBracket ']'> } {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <1> <Id.Lit_LBracket '['> <3-9> <Id.Lit_RBracket ']'> <Id.Lit_QMark '?'> } {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <2> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:drive) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\('> ) } {($ Id.VSub_DollarName '$minor')} {<->} {<128>} { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\)'> ) } {<'/'>} {<16>} ) ) } spids: [908] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:par) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\('> ) } {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('>)} {($ Id.VSub_DollarName '$minor')} {<->} {<128>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'>)} {<'/'>} {<4>} { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\)'> ) } {<Id.Lit_Other '%'>} {<4>} ) ) } spids: [934] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sub) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\('> ) } {($ Id.VSub_DollarName '$minor')} {<->} {<128>} { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\)'> ) } {<Id.Lit_Other '%'>} {<4>} ) ) } spids: [972] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: { (DQ <'hard disk '> ($ Id.VSub_DollarName '$drive') <', partition '> ($ Id.VSub_DollarName '$par') <', subpartition '> ($ Id.VSub_DollarName '$sub') ) } spids: [998] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: { (DQ <'controller '> ($ Id.VSub_DollarName '$ctrlr') <' disk '> ($ Id.VSub_DollarName '$drive') <' partition '> ($ Id.VSub_DollarName '$par') <' slice '> ($ Id.VSub_DollarName '$sub') ) } spids: [1009] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<c> (${ Id.VSub_Name ctrlr) <d> (${ Id.VSub_Name drive) <p> (${ Id.VSub_Name par) <s> (${ Id.VSub_Name sub) } spids: [1026] ) ] ) ] spids: [849 905 1045 -1] ) (case_arm pat_list: [ {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <6> <Id.Lit_LBracket '['> <4-9> <Id.Lit_RBracket ']'> } {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <7> <Id.Lit_QMark '?'> } {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <6> <Id.Lit_LBracket '['> <4-9> <Id.Lit_RBracket ']'> } {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <7> <Id.Lit_QMark '?'> } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tape) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\('> ) } {($ Id.VSub_DollarName '$minor')} {<->} {<64>} { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\)'> ) } {<'/'>} {<2>} ) ) } spids: [1084] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$minor')} arms: [ (case_arm pat_list: [ {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <02468> <Id.Lit_RBracket ']'> } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: { (DQ <'controller '> ($ Id.VSub_DollarName '$ctrlr') <' tape '> ($ Id.VSub_DollarName '$tape') <' (non-rewinding)'> ) } spids: [1124] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<c> (${ Id.VSub_Name ctrlr) <t> (${ Id.VSub_Name tape) <n>} spids: [1134] ) ] ) ] spids: [1117 1121 1146 -1] ) (case_arm pat_list: [ {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <13579> <Id.Lit_RBracket ']'> } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: { (DQ <'controller '> ($ Id.VSub_DollarName '$ctrlr') <' tape '> ($ Id.VSub_DollarName '$tape') <' (rewinding)'> ) } spids: [1156] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<c> (${ Id.VSub_Name ctrlr) <t> (${ Id.VSub_Name tape)} spids: [1166] ) ] ) ] spids: [1149 1153 -1 1177] ) ] ) ] spids: [1048 1081 1180 -1] ) (case_arm pat_list: [{<4> <Id.Lit_Comma ','> <0>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'console device'>)} spids: [1188] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<console>} spids: [1193] ) ] ) ] spids: [1183 1186 1197 -1] ) (case_arm pat_list: [ {<4> <Id.Lit_Comma ','> <Id.Lit_LBracket '['> <1-7> <Id.Lit_RBracket ']'>} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'virtual console '> ($ Id.VSub_DollarName '$minor'))} spids: [1206] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<ttyc> ($ Id.VSub_DollarName '$minor')} spids: [1212] ) ] ) ] spids: [1200 1205 1217 -1] ) (case_arm pat_list: [{<4> <Id.Lit_Comma ','> <15>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'diagnostics device'>)} spids: [1225] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<log>} spids: [1230] ) ] ) ] spids: [1220 1223 1234 -1] ) (case_arm pat_list: [ {<4> <Id.Lit_Comma ','> <1> <Id.Lit_LBracket '['> <6-9> <Id.Lit_RBracket ']'>} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:line) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<->} {<16>}) ) } spids: [1246] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'serial line '> ($ Id.VSub_DollarName '$line'))} spids: [1260] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<tty0> ($ Id.VSub_DollarName '$line')} spids: [1266] ) ] ) ] spids: [1237 1243 1271 -1] ) (case_arm pat_list: [{<4> <Id.Lit_Comma ','> <125>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'video output'>)} spids: [1279] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<video>} spids: [1284] ) ] ) ] spids: [1274 1277 1288 -1] ) (case_arm pat_list: [{<4> <Id.Lit_Comma ','> <126>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'auxiliary input'>)} spids: [1296] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<kbdaux>} spids: [1301] ) ] ) ] spids: [1291 1294 1305 -1] ) (case_arm pat_list: [{<4> <Id.Lit_Comma ','> <127>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'keyboard input'>)} spids: [1313] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<kbd>} spids: [1318] ) ] ) ] spids: [1308 1311 1322 -1] ) (case_arm pat_list: [ {<4> <Id.Lit_Comma ','> <12> <Id.Lit_LBracket '['> <89> <Id.Lit_RBracket ']'>} {<4> <Id.Lit_Comma ','> <1> <Id.Lit_LBracket '['> <3-8> <Id.Lit_RBracket ']'> <Id.Lit_QMark '?'> } {<4> <Id.Lit_Comma ','> <19> <Id.Lit_LBracket '['> <01> <Id.Lit_RBracket ']'>} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:p) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<expr>} { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\('> ) } {($ Id.VSub_DollarName '$minor')} {<->} {<128>} { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\)'> ) } {<'/'>} {<16>} ) (C {<tr>} {(SQ <0123>)} {(SQ <pqrs>)}) ] negated: F ) ) } spids: [1349] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<Id.Lit_Other '%'>} {<16>} ) ) } spids: [1387] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {($ Id.VSub_DollarName '$n')} {<-ge>} {<10>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<expr>} {($ Id.VSub_DollarName '$n')} {<->} {<10>}) (C {<tr>} {(SQ <012345>)} {(SQ <abcdef>)}) ] negated: F ) ) } spids: [1411] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: { (DQ <'pseudo tty '> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<->} {<128>}) ) ) } spids: [1437] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<tty> ($ Id.VSub_DollarName '$p') ($ Id.VSub_DollarName '$n')} spids: [1453] ) ] ) ] spids: [1325 1346 1459 -1] ) (case_arm pat_list: [ {<4> <Id.Lit_Comma ','> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:p) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<expr>} { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\('> ) } {($ Id.VSub_DollarName '$minor')} {<->} {<192>} { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\)'> ) } {<'/'>} {<16>} ) (C {<tr>} {(SQ <0123>)} {(SQ <pqrs>)}) ] negated: F ) ) } spids: [1470] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<Id.Lit_Other '%'>} {<16>} ) ) } spids: [1508] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {($ Id.VSub_DollarName '$n')} {<-ge>} {<10>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<expr>} {($ Id.VSub_DollarName '$n')} {<->} {<10>}) (C {<tr>} {(SQ <012345>)} {(SQ <abcdef>)}) ] negated: F ) ) } spids: [1532] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: { (DQ <'controller of tty'> ($ Id.VSub_DollarName '$p') ($ Id.VSub_DollarName '$n') ) } spids: [1558] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<pty> ($ Id.VSub_DollarName '$p') ($ Id.VSub_DollarName '$n')} spids: [1565] ) ] ) ] spids: [1462 1467 1571 -1] ) (case_arm pat_list: [{<5> <Id.Lit_Comma ','> <0>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'anonymous tty'>)} spids: [1579] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<tty>} spids: [1584] ) ] ) ] spids: [1574 1577 1588 -1] ) (case_arm pat_list: [{<6> <Id.Lit_Comma ','> <0>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'line printer, parallel port'>)} spids: [1596] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<lp>} spids: [1601] ) ] ) ] spids: [1591 1594 1605 -1] ) (case_arm pat_list: [{<7> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:d) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<Id.Lit_Other '%'>} {<8>} ) ) } spids: [1614] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<'/'>} {<8>}) ) } spids: [1628] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$d')} arms: [ (case_arm pat_list: [{<0>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'IP stat'>)} spids: [1652] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<ipstat>} spids: [1657] ) ] ) ] spids: [1649 1650 1661 -1] ) (case_arm pat_list: [{<1>}] action: [ (command.Case to_match: {($ Id.VSub_DollarName '$name')} arms: [ (case_arm pat_list: [{<psip> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'Pseudo IP #'> ($ Id.VSub_DollarName '$n'))} spids: [1679] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<psip>} spids: [1685] ) ] ) ] spids: [1674 1676 1689 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: { (DQ <'raw ethernet #'> ($ Id.VSub_DollarName '$n') ) } spids: [1695] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<eth>} spids: [1701] ) ] ) ] spids: [1692 1693 -1 1705] ) ] ) ] spids: [1664 1665 1708 -1] ) (case_arm pat_list: [{<2>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'raw IP #'> ($ Id.VSub_DollarName '$n'))} spids: [1714] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<ip>} spids: [1720] ) ] ) ] spids: [1711 1712 1724 -1] ) (case_arm pat_list: [{<3>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'TCP/IP #'> ($ Id.VSub_DollarName '$n'))} spids: [1730] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<tcp>} spids: [1736] ) ] ) ] spids: [1727 1728 1740 -1] ) (case_arm pat_list: [{<4>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'UDP #'> ($ Id.VSub_DollarName '$n'))} spids: [1746] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<udp>} spids: [1752] ) ] ) ] spids: [1743 1744 -1 1756] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$d')} arms: [ (case_arm pat_list: [{<Id.Lit_LBracket '['> <0123> <Id.Lit_RBracket ']'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$name'))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$dev'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$des') <' (default)'>) } spids: [1792] ) ] ) ] spids: [1772 1789] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$dev') ($ Id.VSub_DollarName '$n') } spids: [1802] ) ] ) ] ) ] spids: [1766 1769 -1 1810] ) ] ) ] spids: [1608 1611 1813 -1] ) (case_arm pat_list: [{<11> <Id.Lit_Comma ','> <0>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'block filter'>)} spids: [1822] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<filter>} spids: [1827] ) ] ) ] spids: [1816 1819 1831 -1] ) (case_arm pat_list: [{<13> <Id.Lit_Comma ','> <0>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <audio>)} spids: [1840] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<audio>} spids: [1845] ) ] ) ] spids: [1834 1837 1849 -1] ) (case_arm pat_list: [{<14> <Id.Lit_Comma ','> <0>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'audio mixer'>)} spids: [1858] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<mixer>} spids: [1863] ) ] ) ] spids: [1852 1855 1867 -1] ) (case_arm pat_list: [{<15> <Id.Lit_Comma ','> <0>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'kernel log'>)} spids: [1876] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<klog>} spids: [1881] ) ] ) ] spids: [1870 1873 1885 -1] ) (case_arm pat_list: [{<16> <Id.Lit_Comma ','> <0>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: {(DQ <'pseudo random number generator'>)} spids: [1894] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<urandom>} spids: [1899] ) ] ) ] spids: [1888 1891 1903 -1] ) (case_arm pat_list: [{<BAD> <Id.Lit_Comma ','> <BAD>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:des) op: assign_op.Equal rhs: (word.Empty) spids: [1912] ) (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: (word.Empty) spids: [1914] ) ] ) ] spids: [1906 1909 1917 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {<BAD>} spids: [1923] ) ] ) ] spids: [1920 1921 -1 1927] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$name') <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$dev') } arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <Id.Lit_Colon ':'>}] action: [ (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$path') <': not a device'>)}] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ex) op: assign_op.Equal rhs: {<1>} spids: [1956] ) ] ) ] spids: [1940 1942 1960 -1] ) (case_arm pat_list: [ {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <BAD> <Id.Lit_Star '*'> } ] action: [ (command.Simple words: [ {<echo>} { (DQ ($ Id.VSub_DollarName '$path') <': cannot describe: major='> ($ Id.VSub_DollarName '$major') <', minor='> ($ Id.VSub_DollarName '$minor') ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ex) op: assign_op.Equal rhs: {<1>} spids: [1985] ) ] ) ] spids: [1963 1968 1989 -1] ) (case_arm pat_list: [ {($ Id.VSub_DollarName '$dev') <Id.Lit_Colon ':'> <Id.Lit_Star '*'>} ] action: [ (C {<echo>} { (DQ ($ Id.VSub_DollarName '$path') <': '> ($ Id.VSub_DollarName '$des')) } ) ] spids: [1992 1995 2007 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}] action: [ (C {<echo>} { (DQ ($ Id.VSub_DollarName '$path') <': nonstandard name for '> ($ Id.VSub_DollarName '$dev') <': '> ($ Id.VSub_DollarName '$des') ) } ) ] spids: [2010 2013 -1 2026] ) ] ) ] ) ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_DollarName '$ex')} ) ] ) ] negated: F ) ] )