(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:currentVersion) op:Equal rhs:{(DQ (1.11.1))} spids:[7])] spids: [7] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:configuredClient) op:Equal rhs:{(DQ )} spids:[12])] spids: [12] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:search) op:Equal rhs:{(DQ (0))} spids:[19])] spids: [19] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:insensitive) op:Equal rhs:{(DQ )} spids:[24])] spids: [24] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:recursive) op:Equal rhs:{(DQ )} spids:[28])] spids: [28] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:boundry) op:Equal rhs:{(DQ )} spids:[32])] spids: [32] ) (FuncDef name: getConfiguredClient body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(command)} {(-v)} {(curl)}) terminator: <Op_Amp '&'> ) (Sentence child: (SimpleCommand redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [56] ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:configuredClient) op: Equal rhs: {(DQ (curl))} spids: [64] ) ] spids: [64] ) ] spids: [16777215 61] ) (if_arm cond: [ (Sentence child: (C {(command)} {(-v)} {(wget)}) terminator: <Op_Amp '&'> ) (Sentence child: (SimpleCommand redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [79] ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:configuredClient) op: Equal rhs: {(DQ (wget))} spids: [87] ) ] spids: [87] ) ] spids: [70 84] ) (if_arm cond: [ (Sentence child: (C {(command)} {(-v)} {(fetch)}) terminator: <Op_Amp '&'> ) (Sentence child: (SimpleCommand redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [102] ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:configuredClient) op: Equal rhs: {(DQ (fetch))} spids: [110] ) ] spids: [110] ) ] spids: [93 107] ) ] else_action: [ (C {(echo)} {(DQ ('Error: This tool reqires either curl, wget, or fetch to be installed.'))} ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [116 131] ) ] spids: [44] ) spids: [40 43] ) (FuncDef name: httpGet body: (BraceGroup children: [ (Case to_match: {(DQ ($ VSub_Name '$configuredClient'))} arms: [ (case_arm pat_list: [{(curl)}] action: [(C {(curl)} {(-A)} {(curl)} {(-s)} {(DQ ($ VSub_At '$@'))})] spids: [156 157 170 16777215] ) (case_arm pat_list: [{(wget)}] action: [(C {(wget)} {(-qO-)} {(DQ ($ VSub_At '$@'))})] spids: [173 174 183 16777215] ) (case_arm pat_list: [{(fetch)}] action: [(C {(fetch)} {(-o)} {(DQ (...))})] spids: [186 187 196 16777215] ) ] spids: [147 153 199] ) ] spids: [144] ) spids: [140 143] ) (FuncDef name: checkInternet body: (BraceGroup children: [ (Pipeline children: [ (C {(echo)} {(-e)} {(DQ ('GET http://google.com HTTP/1.0') (Lit_Other '\\') (n) (Lit_Other '\\') (n))} ) (SimpleCommand words: [{(nc)} {(google.com)} {(80)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [232] ) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[236]) ] ) ] negated: False ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [16777215 256] ) ] else_action: [ (SimpleCommand words: [{(echo)} {(DQ ('Error: no active internet connection'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[276])] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [267 288] ) ] spids: [209] ) spids: [205 208] ) (FuncDef name: update body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:repositoryName) op: Equal rhs: {(DQ (Bash-Snippets))} spids: [312] ) ] spids: [312] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:githubUserName) op: Equal rhs: {(DQ (alexanderepstein))} spids: [321] ) ] spids: [321] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:nameOfInstallFile) op: Equal rhs: {(DQ (install.sh))} spids: [330] ) ] spids: [330] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:latestVersion) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(httpGet)} {(https) (Lit_Other ':') (//api.github.com/repos/) ($ VSub_Name '$githubUserName') (/) ($ VSub_Name '$repositoryName') (/tags) } ) (C {(grep)} {(-Eo)} {(SQ <'"name":.*?[^\\\\]",'>)}) (C {(head)} {(-1)}) (C {(grep)} {(-Eo)} {(DQ ('[0-9.]+'))}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [340 376] ) } spids: [339] ) ] spids: [339] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalOr left: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$currentVersion')} right: {(DQ )} ) right: (LogicalOr left: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$repositoryName')} right: {(DQ )} ) right: (LogicalOr left: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$githubUserName')} right: {(DQ )} ) right: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$nameOfInstallFile')} right: {(DQ )} ) ) ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} {(DQ ('Error: update utility has not been configured correctly.'))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[432])] ) (C {(exit)} {(1)}) ] spids: [16777215 423] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$latestVersion')} right: {(DQ )} ) ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ('Error: no active internet connection'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[463])] ) (C {(exit)} {(1)}) ] spids: [441 454] ) ] else_action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_Name '$latestVersion'))} right: {(DQ ($ VSub_Name '$currentVersion'))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('Version ') ($ VSub_Name '$latestVersion') (' available'))}) (C {(echo)} {(-n)} { (DQ ('Do you wish to update ') ($ VSub_Name '$repositoryName') (' [Y/n]: ')) } ) (C {(read)} {(-r)} {(answer)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalOr left: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$answer'))} right: {(DQ (Y))} ) right: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$answer'))} right: {(DQ (y))} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (AndOr children: [ (C {(cd)} {(TildeSubPart prefix:'')}) (BraceGroup children: [ (Sentence child: (C {(echo)} {(SQ <'Update Failed'>)}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(exit)} {(1)}) terminator: <Op_Semi ';'> ) ] spids: [560] ) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_d child: {(Lit_Tilde '~') (/) ($ VSub_Name '$repositoryName') } ) ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (AndOr children: [ (C {(rm)} {(-r)} {(-f)} {($ VSub_Name '$repositoryName')}) (BraceGroup children: [ (Sentence child: (C {(echo)} { (DQ ( 'Permissions Error: try running the update as sudo' ) ) } ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(exit)} {(1)}) terminator: <Op_Semi ';'> ) ] spids: [604] ) ] op_id: Op_DPipe ) terminator: <Op_Semi ';'> ) ] spids: [16777215 592] ) ] spids: [16777215 622] ) (AndOr children: [ (C {(git)} {(clone)} { (DQ ('https://github.com/') ($ VSub_Name '$githubUserName') (/) ($ VSub_Name '$repositoryName') ) } ) (BraceGroup children: [ (Sentence child: (C {(echo)} {(DQ ("Couldn't download latest version"))}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(exit)} {(1)}) terminator: <Op_Semi ';'> ) ] spids: [638] ) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cd)} {($ VSub_Name '$repositoryName')}) (BraceGroup children: [ (Sentence child: (C {(echo)} {(SQ <'Update Failed'>)}) terminator: <Op_Semi ';'> ) (Sentence child: (C {(exit)} {(1)}) terminator: <Op_Semi ';'> ) ] spids: [662] ) ] op_id: Op_DPipe ) (AndOr children: [ (SimpleCommand words: [ {(git)} {(checkout)} {(DQ (v) ($ VSub_Name '$latestVersion'))} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [689] ) ] ) (AndOr children: [ (SimpleCommand words: [ {(git)} {(checkout)} {(DQ ($ VSub_Name '$latestVersion'))} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [703] ) ] ) (C {(echo)} { (DQ ( "Couldn't git checkout to stable release, updating to latest commit." ) ) } ) ] op_id: Op_DPipe ) ] op_id: Op_DPipe ) (C {(chmod)} {(a) (Lit_Other '+') (x)} {(install.sh)}) (AndOr children: [ (C {(./) ($ VSub_Name '$nameOfInstallFile')} {(DQ (update))}) (C {(exit)} {(1)}) ] op_id: Op_DPipe ) (C {(cd)} {(..)}) (AndOr children: [ (C {(rm)} {(-r)} {(-f)} {($ VSub_Name '$repositoryName')}) (BraceGroup children: [ (Sentence child: (C {(echo)} { (DQ ( 'Permissions Error: update succesfull but cannot delete temp files located at ~/' ) ($ VSub_Name '$repositoryName') (' delete this directory with sudo') ) } ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(exit)} {(1)}) terminator: <Op_Semi ';'> ) ] spids: [757] ) ] op_id: Op_DPipe ) ] spids: [16777215 551] ) ] else_action: [(C {(exit)} {(1)})] spids: [776 784] ) ] spids: [16777215 492] ) ] else_action: [ (C {(echo)} {(DQ ($ VSub_Name '$repositoryName') (' is already the latest version'))} ) ] spids: [787 798] ) ] spids: [472 801] ) ] spids: [297] ) spids: [293 296] ) (FuncDef name: usage body: (BraceGroup children: [ (C {(echo)} {(DQ (Cheat))}) (C {(echo)} { (DQ ( 'Description: Cheatsheets for quick information about multiple programming languages along with terminal commands' ) ) } ) (C {(echo)} { (DQ ( 'Usage: cheat [flags] [command] or cheat [flags] [programming language] [subject]' ) ) } ) (C {(echo)} {(DQ (' -s Does a search for last argument rather than looking for exact match'))} ) (C {(echo)} {(DQ (' -i Case insensitive search'))}) (C {(echo)} {(DQ (' -b Word boundaries in search'))}) (C {(echo)} {(DQ (' -r Recursive search'))}) (C {(echo)} {(DQ (' -u Update Bash-Snippet Tools'))}) (C {(echo)} {(DQ (' -h Show the help'))}) (C {(echo)} {(DQ (' -v Get the tool version'))}) (C {(echo)} {(DQ ('Special Pages:'))}) (C {(echo)} {(DQ (' hello Describes building the hello world program written in the language'))} ) (C {(echo)} { (DQ ( ' list This lists all cheatsheets related to previous arg if none it lists all cheatsheets' ) ) } ) (C {(echo)} { (DQ ( ' learn Shows a learn-x-in-minutes language cheat sheet perfect for getting started with the language' ) ) } ) (C {(echo)} {(DQ (' 1line A collection of one-liners in this language'))}) (C {(echo)} {(DQ (' weirdness A collection of examples of weird things in this language'))}) (C {(echo)} {(DQ ('Examples:'))}) (C {(echo)} {(DQ (' cheat rust hello'))}) (C {(echo)} {(DQ (' cheat -r -b -i go'))}) (C {(echo)} {(DQ (' cheat julia Functions'))}) (C {(echo)} {(DQ (' cheat -i go operators'))}) ] spids: [811] ) spids: [807 810] ) (FuncDef name: getCheatSheet body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Pound '$#')} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$search')} right: {(DQ (1))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:link) op: Equal rhs: {(cheat.sh/) (Lit_Tilde '~') ($ VSub_Number '$1')} spids: [1003] ) ] spids: [1003] ) ] spids: [16777215 1000] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:link) op: Equal rhs: {(cheat.sh/) ($ VSub_Number '$1')} spids: [1012] ) ] spids: [1012] ) ] spids: [1009 1017] ) ] spids: [16777215 983] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:link) op: Equal rhs: {(cheat.sh/) ($ VSub_Number '$1')} spids: [1023] ) ] spids: [1023] ) ] spids: [1020 1028] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Pound '$#')} right: {(2)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$search')} right: {(DQ (1))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:link) op: PlusEqual rhs: {(/) (Lit_Tilde '~') ($ VSub_Number '$2')} spids: [1064] ) ] spids: [1064] ) ] spids: [16777215 1061] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:link) op: PlusEqual rhs: {(/) ($ VSub_Number '$2')} spids: [1076] ) ] spids: [1076] ) ] spids: [1073 1084] ) ] spids: [16777215 1044] ) ] spids: [16777215 1087] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalOr left: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Name '$insensitive')} right: {(DQ )} ) right: (LogicalOr left: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Name '$recursive')} right: {(DQ )} ) right: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Name '$boundry')} right: {(DQ )} ) ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:link) op: PlusEqual rhs: {(/) ($ VSub_Name '$boundry') ($ VSub_Name '$insensitive') ($ VSub_Name '$recursive') } spids: [1124] ) ] spids: [1124] ) terminator: <Op_Semi ';'> ) ] spids: [16777215 1122] ) ] spids: [16777215 1131] ) (C {(httpGet)} {($ VSub_Name '$link')}) ] spids: [967] ) spids: [963 966] ) (FuncDef name: checkSpecialPage body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:temp) op: Equal rhs: {($ VSub_Number '$1')} spids: [1156] ) ] spids: [1156] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number '$1')} right: {(DQ (list))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:temp) op: Equal rhs: {(DQ (':list'))} spids: [1177] ) ] spids: [1177] ) ] spids: [16777215 1174] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number '$1')} right: {(DQ (learn))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:temp) op: Equal rhs: {(DQ (':list'))} spids: [1200] ) ] spids: [1200] ) ] spids: [1183 1197] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number '$1')} right: {(DQ (styles))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:temp) op: Equal rhs: {(DQ (':styles'))} spids: [1223] ) ] spids: [1223] ) ] spids: [1206 1220] ) ] spids: [16777215 1229] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number '$2')} right: {(DQ (1))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:arg1) op: Equal rhs: {($ VSub_Name '$temp')} spids: [1249] ) ] spids: [1249] ) ] spids: [16777215 1246] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:arg2) op: Equal rhs: {($ VSub_Name '$temp')} spids: [1256] ) ] spids: [1256] ) ] spids: [1253 1260] ) ] spids: [1153] ) spids: [1149 1152] ) (AndOr children:[(C {(getConfiguredClient)}) (C {(exit)} {(1)})] op_id:Op_DPipe) (AndOr children:[(C {(checkInternet)}) (C {(exit)} {(1)})] op_id:Op_DPipe) (While cond: [(Sentence child:(C {(getopts)} {(DQ (ribuvhis))} {(opt)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Case to_match: {($ VSub_Name '$opt')} arms: [ (case_arm pat_list: [{(EscapedLiteralPart token:<Lit_EscapedChar '\\?'>)}] action: [ (SimpleCommand words: [{(echo)} {(DQ ('Invalid option: -') ($ VSub_Name '$OPTARG'))}] redirects: [ (Redir op_id: Redir_GreatAnd fd: 16777215 arg_word: {(2)} spids: [1314] ) ] ) (C {(exit)} {(1)}) ] spids: [1303 1304 1323 16777215] ) (case_arm pat_list: [{(h)}] action: [(C {(usage)}) (C {(exit)} {(0)})] spids: [1326 1327 1338 16777215] ) (case_arm pat_list: [{(v)}] action: [ (C {(echo)} {(DQ ('Version ') ($ VSub_Name '$currentVersion'))}) (C {(exit)} {(0)}) ] spids: [1341 1342 1358 16777215] ) (case_arm pat_list: [{(u)}] action: [(C {(update)}) (C {(exit)} {(0)})] spids: [1361 1362 1373 16777215] ) (case_arm pat_list: [{(i)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:insensitive) op: Equal rhs: {(DQ (i))} spids: [1380] ) ] spids: [1380] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:search) op: Equal rhs: {(DQ (1))} spids: [1386] ) ] spids: [1386] ) ] spids: [1376 1377 1392 16777215] ) (case_arm pat_list: [{(b)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:boundry) op: Equal rhs: {(DQ (b))} spids: [1399] ) ] spids: [1399] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:search) op: Equal rhs: {(DQ (1))} spids: [1405] ) ] spids: [1405] ) ] spids: [1395 1396 1411 16777215] ) (case_arm pat_list: [{(r)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:recursive) op: Equal rhs: {(DQ (r))} spids: [1418] ) ] spids: [1418] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:search) op: Equal rhs: {(DQ (1))} spids: [1424] ) ] spids: [1424] ) ] spids: [1414 1415 1430 16777215] ) (case_arm pat_list: [{(s)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:search) op: Equal rhs: {(DQ (1))} spids: [1437] ) ] spids: [1437] ) ] spids: [1433 1434 1443 16777215] ) (case_arm pat_list: [{(Lit_Other ':')}] action: [ (SimpleCommand words: [ {(echo)} {(DQ ('Option -') ($ VSub_Name '$OPTARG') (' requires an argument.'))} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 16777215 arg_word: {(2)} spids: [1458] ) ] ) (C {(exit)} {(1)}) ] spids: [1446 1447 1467 16777215] ) ] spids: [1296 1300 1470] ) ] spids: [1293 1472] ) ) (ForEach iter_name: arg do_arg_iter: True body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalAnd left: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Name '$arg')} right: {(DQ (-r))} ) right: (LogicalAnd left: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Name '$arg')} right: {(DQ (-s))} ) right: (LogicalAnd left: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Name '$arg')} right: {(DQ (-b))} ) right: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Name '$arg')} right: {(DQ (-i))} ) ) ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} { (BracedVarSub token: <VSub_Name arg1> suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(x)}) spids: [1538 1542] ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:arg1) op: Equal rhs: {($ VSub_Name '$arg')} spids: [1549] ) ] spids: [1549] ) ] spids: [16777215 1546] ) ] spids: [16777215 1553] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} { (BracedVarSub token: <VSub_Name arg1> suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(x)}) spids: [1564 1568] ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:arg2) op: Equal rhs: {($ VSub_Name '$arg')} spids: [1575] ) ] spids: [1575] ) ] spids: [16777215 1572] ) ] spids: [16777215 1579] ) ] spids: [16777215 1529] ) ] spids: [16777215 1582] ) ] spids: [1482 1584] ) spids: [16777215 16777215] ) (C {(checkSpecialPage)} {($ VSub_Name '$arg1')} {(1)}) (C {(checkSpecialPage)} {($ VSub_Name '$arg2')} {(2)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id:BoolBinary_GlobDEqual left:{($ VSub_Pound '$#')} right:{(0)}) ) terminator: <Op_Semi ';'> ) ] action: [(C {(usage)}) (C {(exit)} {(0)})] spids: [16777215 1616] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number '$1')} right: {(DQ (update))} ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(update)}) (C {(exit)} {(0)})] spids: [1626 1640] ) (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalOr left: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number '$1')} right: {(DQ (help))} ) right: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number '$1')} right: {(DQ (':help'))} ) ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(usage)}) (C {(exit)} {(0)})] spids: [1650 1674] ) ] else_action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Name '$arg1')} right: {($ VSub_Name '$arg2')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(getCheatSheet)} {($ VSub_Name '$arg1')} {($ VSub_Name '$arg2')}) (C {(exit)} {(0)}) ] spids: [16777215 1702] ) ] else_action: [(C {(getCheatSheet)} {($ VSub_Name '$arg1')}) (C {(exit)} {(0)})] spids: [1720 1733] ) (C {(exit)} {(0)}) ] spids: [1687 1741] ) ] )