(List (Com {[LIT_OTHER ":"]} {[LIT_OTHER ":"]} {[LIT_CHARS generated]} {[LIT_CHARS by]} {[LIT_CHARS mkptytests]} {[LIT_CHARS from]} {[DQ [LIT_CHARS "posix-sh-*-c.pty"]]} {[LIT_OTHER ":"]} {[LIT_OTHER ":"]}) (FunctionDef err_exit [] (List (Com {[LIT_CHARS print]} {[LIT_CHARS -u2]} {[LIT_CHARS -n]} {[DQ [\ LIT_ESCAPED_CHAR "\\t"]]}) (Com {[LIT_CHARS print]} {[LIT_CHARS -u2]} {[LIT_CHARS -r]} {[VarSub Command] [LIT_OTHER "["] [VarSub 1] [LIT_OTHER "]"] [LIT_OTHER ":"]} {[DQ [VarSub @ transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}} None]]]}) (DParen {A1 AS_OP_DPLUS {A Atom NODE_ARITH_WORD {[VarSub Errors]}} }) ) ) (Com {[LIT_CHARS alias]} {[LIT_VAR_LIKE "err_exit="] [SQ ] =}) (= scope= flags=0 words=[] bindings=[('Command', {[VarSub 0 transform_ops=[VS_UNARY_DPOUND {[LIT_CHARS "*"] [LIT_SLASH /]}]]})]) (Com {[LIT_CHARS integer]} {[LIT_VAR_LIKE "Errors="] [LIT_CHARS 0] =} {[LIT_VAR_LIKE "lineno="] [LIT_CHARS 1] =}) (AndOr OP_OR_IF (Com {[LIT_CHARS whence]} {[LIT_CHARS -q]} {[LIT_CHARS pty]}) (List (= scope= flags=0 words=[] bindings=[('lineno', {[VarSub LINENO]})]) (Com {[LIT_CHARS err_exit]} {[DQ [LIT_CHARS "pty command not found -- tests skipped"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) ) ) (= scope= flags=0 words=[] bindings=[('bintrue', {[ComSub (Com {[LIT_CHARS whence]} {[LIT_CHARS -p]} {[LIT_CHARS true]})]})]) (= scope= flags=0 words=[] bindings=[('x', {[ComSub (Com redirects=[(HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "trap 'exit 0' EXIT\n"] [LIT_CHARS "bintrue=$(whence -p true)\n"] [LIT_CHARS "set -o monitor\n"] [LIT_CHARS "{\n"] [LIT_CHARS "eval $'set -o vi\\npty $bintrue'\n"] [LIT_CHARS "} < /dev/null & pid=$!\n"] [LIT_CHARS "#sleep 1\n"] [LIT_CHARS "jobs\n"] [LIT_CHARS "kill $$\n"]} 0)]{[VarSub SHELL]})]})]) (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[VarSub x]} {[LIT_OTHER "*"] [LIT_CHARS Stop] [LIT_OTHER "*"]}}) (Com {[LIT_CHARS err_exit]} {[SQ ]}) ) (If (DBracket {B1 UNARY_OTHER_o {[LIT_CHARS xtrace]}}) (= scope= flags=0 words=[] bindings=[('debug', {[LIT_CHARS --debug] [LIT_OTHER "="] [LIT_CHARS 1]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('debug', {[SQ ]})]) ) (FunctionDef tst [] (List (Com {[LIT_CHARS integer]} {[LIT_VAR_LIKE "lineno="] [VarSub 1] =} {[LIT_CHARS offset]}) (Com {[LIT_CHARS typeset]} {[LIT_CHARS text]}) (Pipeline (Com {[LIT_CHARS pty]} {[VarSub debug]} {[LIT_CHARS --dialogue]} {[LIT_CHARS --messages] [LIT_OTHER "="] [SQ ]} {[VarSub SHELL]}) (While (Com {[LIT_CHARS read]} {[LIT_CHARS -r]} {[LIT_CHARS text]}) (If (DBracket {B2 BINARY_STRING_EQUAL {[VarSub text]} {[LIT_OTHER "*"] [LIT_CHARS debug] [LIT_OTHER "*"]}}) (Com {[LIT_CHARS print]} {[LIT_CHARS -u2]} {[LIT_CHARS -r]} {[LIT_CHARS --]} {[DQ [VarSub text]]}) (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('offset', {[VarSub text transform_ops=[PatSub {[LIT_CHARS "*: line +([[:digit:]]):*"]} {[\ LIT_ESCAPED_CHAR "\\1"]}]]})]) (Com {[LIT_CHARS err_exit]} {[DQ [VarSub text transform_ops=[PatSub {[LIT_CHARS ": line "] [VarSub offset] [LIT_CHARS ":"]} {[LIT_CHARS ": line "] [ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub lineno]}} {A Atom NODE_ARITH_WORD {[VarSub offset]}}}] [LIT_CHARS ":"]}]]]}) ) ) ) ) ) ) (= scope= flags=1 words=[] bindings=[('PS1', {[SQ ]}), ('PS2', {[SQ ">]}), ('PS4', {[SQ ]}), ('ENV', {[SQ ]}), ('EXINIT', {[SQ ]}), ('HISTFILE', {[SQ ]}), ('TERM', {[LIT_CHARS dumb]}), ('VISUAL', {[LIT_CHARS vi]}), ('LC_ALL', {[LIT_CHARS C]})]) (If (Pipeline! (Com {[LIT_CHARS pty]} {[VarSub bintrue]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} 0), > ) ) (List (Com {[LIT_CHARS err_exit]} {[LIT_CHARS pty]} {[LIT_CHARS command]} {[LIT_CHARS hangs]} {[LIT_CHARS on]} {[VarSub bintrue]} {[LIT_CHARS --]} {[LIT_CHARS tests]} {[LIT_CHARS skipped]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) ) ) (Com {[LIT_CHARS tst]} {[VarSub LINENO]} < (HereDocRedirectNode here_end='!' do_expansion=False body_word={[LIT_CHARS "L POSIX sh 026(C)\n"] [LIT_CHARS "\n"] [LIT_CHARS "# If the User Portability Utilities Option is supported: When the\n"] [LIT_CHARS "# POSIX locale is specified and a background job is suspended by a\n"] [LIT_CHARS "# SIGTSTP signal then the field in the output message is set to\n"] [LIT_CHARS "# Stopped, Suspended, Stopped(SIGTSTP) or Suspended(SIGTSTP).\n"] [LIT_CHARS "\n"] [LIT_CHARS "I ^\\r?\\n$\n"] [LIT_CHARS "p :test-1:\n"] [LIT_CHARS "w sleep 60 &\n"] [LIT_CHARS "u [[:digit:]]\\r?\\n$\n"] [LIT_CHARS "s 100\n"] [LIT_CHARS "p :test-2:\n"] [LIT_CHARS "w kill -TSTP $!\n"] [LIT_CHARS "u (Stopped|Suspended)\n"] [LIT_CHARS "p :test-3:\n"] [LIT_CHARS "w kill -KILL $!\n"] [LIT_CHARS "w wait\n"] [LIT_CHARS "u (Killed|Done)\n"]} 0), > ) (Com {[LIT_CHARS tst]} {[VarSub LINENO]} < (HereDocRedirectNode here_end='!' do_expansion=False body_word={[LIT_CHARS "L POSIX sh 028(C)\n"] [LIT_CHARS "\n"] [LIT_CHARS "# If the User Portability Utilities Option is supported: When the\n"] [LIT_CHARS "# POSIX locale is specified and a background job is suspended by a\n"] [LIT_CHARS "# SIGTTIN signal then the field in the output message is set to\n"] [LIT_CHARS "# Stopped(SIGTTIN) or Suspended(SIGTTIN).\n"] [LIT_CHARS "\n"] [LIT_CHARS "I ^\\r?\\n$\n"] [LIT_CHARS "p :test-1:\n"] [LIT_CHARS "w sleep 60 &\n"] [LIT_CHARS "u [[:digit:]]\\r?\\n$\n"] [LIT_CHARS "s 100\n"] [LIT_CHARS "p :test-2:\n"] [LIT_CHARS "w kill -TTIN $!\n"] [LIT_CHARS "u (Stopped|Suspended) \\(SIGTTIN\\)\n"] [LIT_CHARS "p :test-3:\n"] [LIT_CHARS "w kill -KILL $!\n"] [LIT_CHARS "w wait\n"] [LIT_CHARS "u (Killed|Done)\n"]} 0), > ) (Com {[LIT_CHARS tst]} {[VarSub LINENO]} < (HereDocRedirectNode here_end='!' do_expansion=False body_word={[LIT_CHARS "L POSIX sh 029(C)\n"] [LIT_CHARS "\n"] [LIT_CHARS "# If the User Portability Utilities Option is supported: When the\n"] [LIT_CHARS "# POSIX locale is specified and a background job is suspended by a\n"] [LIT_CHARS "# SIGTTOU signal then the field in the output message is set to\n"] [LIT_CHARS "# Stopped(SIGTTOU) or Suspended(SIGTTOU).\n"] [LIT_CHARS "\n"] [LIT_CHARS "I ^\\r?\\n$\n"] [LIT_CHARS "p :test-1:\n"] [LIT_CHARS "w sleep 60 &\n"] [LIT_CHARS "u [[:digit:]]\\r?\\n$\n"] [LIT_CHARS "s 100\n"] [LIT_CHARS "p :test-2:\n"] [LIT_CHARS "w kill -TTOU $!\n"] [LIT_CHARS "u (Stopped|Suspended) \\(SIGTTOU\\)\n"] [LIT_CHARS "p :test-3:\n"] [LIT_CHARS "w kill -KILL $!\n"] [LIT_CHARS "w wait\n"] [LIT_CHARS "u (Killed|Done)\n"]} 0), > ) (Com {[LIT_CHARS tst]} {[VarSub LINENO]} < (HereDocRedirectNode here_end='!' do_expansion=False body_word={[LIT_CHARS "L POSIX sh 091(C)\n"] [LIT_CHARS "\n"] [LIT_CHARS "# If the User Portability Utilities Option is supported and shell\n"] [LIT_CHARS "# command line editing is supported: When in insert mode an entered\n"] [LIT_CHARS "# character other than , erase, interrupt, kill, control-V,\n"] [LIT_CHARS "# control-W, backslash \\ (followed by erase or kill), end-of-file and\n"] [LIT_CHARS "# is inserted in the current command line.\n"] [LIT_CHARS "\n"] [LIT_CHARS "c echo h\n"] [LIT_CHARS "c ell\n"] [LIT_CHARS "w o\n"] [LIT_CHARS "u ^hello\\r?\\n$\n"]} 0), > ) (Com {[LIT_CHARS tst]} {[VarSub LINENO]} < (HereDocRedirectNode here_end='!' do_expansion=False body_word={[LIT_CHARS "L POSIX sh 093(C)\n"] [LIT_CHARS "\n"] [LIT_CHARS "# If the User Portability Utilities Option is supported and shell\n"] [LIT_CHARS "# command line editing is supported: After termination of a previous\n"] [LIT_CHARS "# command, sh is entered in insert mode.\n"] [LIT_CHARS "\n"] [LIT_CHARS "w echo hello\n"] [LIT_CHARS "u ^hello\\r?\\n$\n"] [LIT_CHARS "c echo goo\n"] [LIT_CHARS "c dby\n"] [LIT_CHARS "w e\n"] [LIT_CHARS "u ^goodbye\\r?\\n$\n"]} 0), > ) (Com {[LIT_CHARS tst]} {[VarSub LINENO]} < (HereDocRedirectNode here_end='!' do_expansion=False body_word={[LIT_CHARS "L POSIX sh 094(C)\n"] [LIT_CHARS "\n"] [LIT_CHARS "# If the User Portability Utilities Option is supported and shell\n"] [LIT_CHARS "# command line editing is supported: When in insert mode an \n"] [LIT_CHARS "# switches sh into command mode.\n"] [LIT_CHARS "\n"] [LIT_CHARS "c echo he\\E\n"] [LIT_CHARS "s 400\n"] [LIT_CHARS "w allo\n"] [LIT_CHARS "u ^hello\\r?\\n$\n"]} 0), > ) (Com {[LIT_CHARS tst]} {[VarSub LINENO]} < (HereDocRedirectNode here_end='!' do_expansion=False body_word={[LIT_CHARS "L POSIX sh 096(C)\n"] [LIT_CHARS "\n"] [LIT_CHARS "# If the User Portability Utilities Option is supported and shell\n"] [LIT_CHARS "# command line editing is supported: When in command mode the\n"] [LIT_CHARS "# interrupt character causes sh to terminate command line editing on\n"] [LIT_CHARS "# the current command line, re-issue the prompt on the next line of the\n"] [LIT_CHARS "# terminal and to reset the command history so that the command that\n"] [LIT_CHARS "# was interrupted is not entered in the history.\n"] [LIT_CHARS "\n"] [LIT_CHARS "I ^\\r?\\n$\n"] [LIT_CHARS "p :test-1:\n"] [LIT_CHARS "w echo first\n"] [LIT_CHARS "p :test-2:\n"] [LIT_CHARS "w stty intr ^C\n"] [LIT_CHARS "p :test-3:\n"] [LIT_CHARS "c echo bad\\E\n"] [LIT_CHARS "s 400\n"] [LIT_CHARS "c \\cC\n"] [LIT_CHARS "w echo scrambled\n"] [LIT_CHARS "p :test-4:\n"] [LIT_CHARS "w history\n"] [LIT_CHARS "u echo first\n"] [LIT_CHARS "r stty intr \\^C\n"] [LIT_CHARS "r echo\n"] [LIT_CHARS "r history\n"]} 0), > ) (Com {[LIT_CHARS tst]} {[VarSub LINENO]} < (HereDocRedirectNode here_end='!' do_expansion=False body_word={[LIT_CHARS "L POSIX sh 097(C)\n"] [LIT_CHARS "\n"] [LIT_CHARS "# If the User Portability Utilities Option is supported and shell\n"] [LIT_CHARS "# command line editing is supported: When in insert mode a \n"] [LIT_CHARS "# causes the current command line to be executed.\n"] [LIT_CHARS "\n"] [LIT_CHARS "c echo ok\\n\n"] [LIT_CHARS "u ^ok\\r?\\n$\n"]} 0), > ) (Com {[LIT_CHARS tst]} {[VarSub LINENO]} < (HereDocRedirectNode here_end='!' do_expansion=False body_word={[LIT_CHARS "L POSIX sh 099(C)\n"] [LIT_CHARS "\n"] [LIT_CHARS "# If the User Portability Utilities Option is supported and shell\n"] [LIT_CHARS "# command line editing is supported: When in insert mode the interrupt\n"] [LIT_CHARS "# character causes sh to terminate command line editing on the current\n"] [LIT_CHARS "# command line, re-issue the prompt on the next line of the terminal\n"] [LIT_CHARS "# and to reset the command history so that the command that was\n"] [LIT_CHARS "# interrupted is not entered in the history.\n"] [LIT_CHARS "\n"] [LIT_CHARS "I ^\\r?\\n$\n"] [LIT_CHARS "p :test-1:\n"] [LIT_CHARS "w echo first\n"] [LIT_CHARS "u ^first\n"] [LIT_CHARS "p :test-2:\n"] [LIT_CHARS "w stty intr ^C\n"] [LIT_CHARS "r\n"] [LIT_CHARS "p :test-3:\n"] [LIT_CHARS "c echo bad\\cC\n"] [LIT_CHARS "w echo last\n"] [LIT_CHARS "p :test-4:\n"] [LIT_CHARS "w history\n"] [LIT_CHARS "u echo first\n"] [LIT_CHARS "r stty intr \\^C\n"] [LIT_CHARS "r echo last\n"] [LIT_CHARS "r history\n"]} 0), > ) (Com {[LIT_CHARS tst]} {[VarSub LINENO]} < (HereDocRedirectNode here_end='!' do_expansion=False body_word={[LIT_CHARS "L POSIX sh 100(C)\n"] [LIT_CHARS "\n"] [LIT_CHARS "# If the User Portability Utilities Option is supported and shell\n"] [LIT_CHARS "# command line editing is supported: When in insert mode the kill\n"] [LIT_CHARS "# character clears all the characters from the input line.\n"] [LIT_CHARS "\n"] [LIT_CHARS "p :test-1:\n"] [LIT_CHARS "w stty kill ^X\n"] [LIT_CHARS "p :test-2:\n"] [LIT_CHARS "c echo bad\\cX\n"] [LIT_CHARS "w echo ok\n"] [LIT_CHARS "u ^ok\\r?\\n$\n"]} 0), > ) (Com {[LIT_CHARS tst]} {[VarSub LINENO]} < (HereDocRedirectNode here_end='!' do_expansion=False body_word={[LIT_CHARS "L POSIX sh 101(C)\n"] [LIT_CHARS "\n"] [LIT_CHARS "# If the User Portability Utilities Option is supported and shell\n"] [LIT_CHARS "# command line editing is supported: When in insert mode a control-V\n"] [LIT_CHARS "# causes the next character to be inserted even in the case that the\n"] [LIT_CHARS "# character is a special insert mode character.\n"] [LIT_CHARS "# Testing Requirements: The assertion must be tested with at least the\n"] [LIT_CHARS "# following set of characters: , erase, interrupt, kill,\n"] [LIT_CHARS "# control-V, control-W, end-of-file, backslash \\ (followed by erase or\n"] [LIT_CHARS "# kill) and .\n"] [LIT_CHARS "\n"] [LIT_CHARS "d 10\n"] [LIT_CHARS "p :test-1:\n"] [LIT_CHARS "w stty erase ^H intr ^C kill ^X\n"] [LIT_CHARS "p :test-2:\n"] [LIT_CHARS "w echo erase=:\\cV\\cH:\n"] [LIT_CHARS "u ^erase=:\\r?\\n$\n"] [LIT_CHARS "p :test-3:\n"] [LIT_CHARS "w echo kill=:\\cV\\cX:\n"] [LIT_CHARS "u ^kill=:\\cX:\\r?\\n$\n"] [LIT_CHARS "p :test-4:\n"] [LIT_CHARS "w echo control-V=:\\cV\\cV:\n"] [LIT_CHARS "u ^control-V=:\\cV:\\r?\\n$\n"] [LIT_CHARS "p :test-5:\n"] [LIT_CHARS "w echo control-W:\\cV\\cW:\n"] [LIT_CHARS "u ^control-W:\\cW:\\r?\\n$\n"] [LIT_CHARS "p :test-6:\n"] [LIT_CHARS "w echo EOF=:\\cV\\cD:\n"] [LIT_CHARS "u ^EOF=:\\004:\\r?\\n$\n"] [LIT_CHARS "p :test-7:\n"] [LIT_CHARS "w echo backslash-erase=:\\\\\\cH:\n"] [LIT_CHARS "u ^backslash-erase=:\\r?\\n$\n"] [LIT_CHARS "p :test-8:\n"] [LIT_CHARS "w echo backslash-kill=:\\\\\\cX:\n"] [LIT_CHARS "u ^backslash-kill=:\\cX:\\r?\\n$\n"] [LIT_CHARS "p :test-9:\n"] [LIT_CHARS "w echo ESC=:\\cV\\E:\n"] [LIT_CHARS "u ^ESC=:\\E:\\r?\\n$\n"] [LIT_CHARS "p :test-10:\n"] [LIT_CHARS "w echo interrupt=:\\cV\\cC:\n"] [LIT_CHARS "u ^interrupt=:\\cC:\\r?\\n$\n"]} 0), > ) (Com {[LIT_CHARS tst]} {[VarSub LINENO]} < (HereDocRedirectNode here_end='!' do_expansion=False body_word={[LIT_CHARS "L POSIX sh 104(C)\n"] [LIT_CHARS "\n"] [LIT_CHARS "# If the User Portability Utilities Option is supported and shell\n"] [LIT_CHARS "# command line editing is supported: When in insert mode an\n"] [LIT_CHARS "# end-of-file at the beginning of an input line is interpreted as the\n"] [LIT_CHARS "# end of input.\n"] [LIT_CHARS "\n"] [LIT_CHARS "p :test-1:\n"] [LIT_CHARS "w trap 'echo done >&2' EXIT\n"] [LIT_CHARS "p :test-2:\n"] [LIT_CHARS "s 100\n"] [LIT_CHARS "c \\cD\n"] [LIT_CHARS "u ^done\\r?\\n$\n"]} 0), > ) (Com {[LIT_CHARS tst]} {[VarSub LINENO]} < (HereDocRedirectNode here_end='!' do_expansion=False body_word={[LIT_CHARS "L POSIX sh 111(C)\n"] [LIT_CHARS "\n"] [LIT_CHARS "# If the User Portability Utilities Option is supported and shell\n"] [LIT_CHARS "# command line editing is supported: When in command mode, # inserts\n"] [LIT_CHARS "# the character # at the beginning of the command line and causes the\n"] [LIT_CHARS "# line to be treated as a comment and the line is entered in the\n"] [LIT_CHARS "# command history.\n"] [LIT_CHARS "\n"] [LIT_CHARS "p :test-1:\n"] [LIT_CHARS "c echo save\\E\n"] [LIT_CHARS "s 400\n"] [LIT_CHARS "c #\n"] [LIT_CHARS "p :test-2:\n"] [LIT_CHARS "w history\n"] [LIT_CHARS "u #echo save\n"] [LIT_CHARS "r history\n"]} 0), > ) (Com {[LIT_CHARS tst]} {[VarSub LINENO]} < (HereDocRedirectNode here_end='!' do_expansion=False body_word={[LIT_CHARS "L POSIX sh 137(C)\n"] [LIT_CHARS "\n"] [LIT_CHARS "# If the User Portability Utilities Option is supported and shell\n"] [LIT_CHARS "# command line editing is supported: When in command mode, then v\n"] [LIT_CHARS "# invokes the vi editor to edit the current command line in a temporary\n"] [LIT_CHARS "# file. When the editor exits, the commands in the temporary file are\n"] [LIT_CHARS "# executed.\n"] [LIT_CHARS "\n"] [LIT_CHARS "p :test-1:\n"] [LIT_CHARS "c echo hello\\E\n"] [LIT_CHARS "s 400\n"] [LIT_CHARS "c v\n"] [LIT_CHARS "u /tmp/\n"] [LIT_CHARS "c A world\\E\n"] [LIT_CHARS "s 400\n"] [LIT_CHARS "w :wq\n"] [LIT_CHARS "u ^hello world\\r?\\n$\n"]} 0), > ) (Com {[LIT_CHARS tst]} {[VarSub LINENO]} < (HereDocRedirectNode here_end='!' do_expansion=False body_word={[LIT_CHARS "L POSIX sh 251(C)\n"] [LIT_CHARS "\n"] [LIT_CHARS "# If the User Portability Utilities Option is supported and shell\n"] [LIT_CHARS "# command line editing is supported: When in command mode, then the\n"] [LIT_CHARS "# command N repeats the most recent / or ? command, reversing the\n"] [LIT_CHARS "# direction of the search.\n"] [LIT_CHARS "\n"] [LIT_CHARS "p :test-1:\n"] [LIT_CHARS "w echo repeat-1\n"] [LIT_CHARS "u ^repeat-1\\r?\\n$\n"] [LIT_CHARS "p :test-2:\n"] [LIT_CHARS "w echo repeat-2\n"] [LIT_CHARS "u ^repeat-2\\r?\\n$\n"] [LIT_CHARS "p :test-3:\n"] [LIT_CHARS "s 100\n"] [LIT_CHARS "c \\E\n"] [LIT_CHARS "s 400\n"] [LIT_CHARS "w /rep\n"] [LIT_CHARS "u echo repeat-2\n"] [LIT_CHARS "c n\n"] [LIT_CHARS "r echo repeat-1\n"] [LIT_CHARS "c N\n"] [LIT_CHARS "r echo repeat-2\n"] [LIT_CHARS "w dd\n"] [LIT_CHARS "p :test-3:\n"] [LIT_CHARS "w echo repeat-3\n"] [LIT_CHARS "u ^repeat-3\\r?\\n$\n"] [LIT_CHARS "p :test-4:\n"] [LIT_CHARS "s 100\n"] [LIT_CHARS "c \\E\n"] [LIT_CHARS "s 400\n"] [LIT_CHARS "w ?rep\n"] [LIT_CHARS "r echo repeat-2\n"] [LIT_CHARS "c N\n"] [LIT_CHARS "r echo repeat-1\n"] [LIT_CHARS "c n\n"] [LIT_CHARS "r echo repeat-2\n"] [LIT_CHARS "c n\n"] [LIT_CHARS "r echo repeat-3\n"]} 0), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS whence]} {[LIT_CHARS -q]} {[LIT_CHARS less]}) (Com {[LIT_CHARS tst]} {[VarSub LINENO]} < (HereDocRedirectNode here_end='!' do_expansion=False body_word={[LIT_CHARS "L process/terminal group exercise\n"] [LIT_CHARS "\n"] [LIT_CHARS "w m=yes; while true; do echo $m-$m; done | less\n"] [LIT_CHARS "u :$|:\\E|lines\n"] [LIT_CHARS "c \\cZ\n"] [LIT_CHARS "r Stopped\n"] [LIT_CHARS "w fg\n"] [LIT_CHARS "u yes-yes\n"]} 0), > more_env=[('TERM', {[LIT_CHARS vt100]})] ) ) (Com {[LIT_CHARS exit]} {[ArithSub {A3 AS_OP_QMARK {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub Errors]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 125]}}} {A Atom NODE_ARITH_WORD {[VarSub Errors]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 125]}}}]}) )