1 /* Input/Output Statements */
9 { ioclause(IOSUNIT, $2); endioctl(); }
11 { ioclause(IOSUNIT, ENULL); endioctl(); }
13 { ioclause(IOSUNIT, IOSTDERR); endioctl(); }
21 | read infmt SCOMMA inlist
23 | read ioctl SCOMMA inlist
31 | print SCOMMA outlist
35 iofmove: fmkwd end_spec in_ioctl
39 { iostmt = IOBACKSPACE; }
41 { iostmt = IOREWIND; }
43 { iostmt = IOENDFILE; }
46 iofctl: ctlkwd end_spec in_ioctl
50 { iostmt = IOINQUIRE; }
59 ioclause(IOSUNIT, ENULL);
65 ioclause(IOSUNIT, ENULL);
66 ioclause(IOSFMT, ENULL);
71 ioctl: SLPAR fexpr SRPAR
73 ioclause(IOSUNIT, $2);
81 | ctllist SCOMMA ioclause
85 { ioclause(IOSPOSITIONAL, $1); }
87 { ioclause(IOSPOSITIONAL, ENULL); }
89 { ioclause(IOSPOSITIONAL, IOSTDERR); }
93 { ioclause($1, ENULL); }
95 { ioclause($1, IOSTDERR); }
102 read: SREAD end_spec in_ioctl
106 write: SWRITE end_spec in_ioctl
107 { iostmt = IOWRITE; }
110 print: SPRINT end_spec fexpr in_ioctl
113 ioclause(IOSUNIT, ENULL);
114 ioclause(IOSFMT, $3);
117 | SPRINT end_spec SSTAR in_ioctl
120 ioclause(IOSUNIT, ENULL);
121 ioclause(IOSFMT, ENULL);
127 { $$ = mkchain((char *)$1, CHNULL); }
128 | inlist SCOMMA inelt
129 { $$ = hookup($1, mkchain((char *)$3, CHNULL)); }
133 { $$ = (tagptr) $1; }
134 | SLPAR inlist SCOMMA dospec SRPAR
135 { $$ = (tagptr) mkiodo($4,$2); }
139 { $$ = mkchain((char *)$1, CHNULL); }
141 { $$ = mkchain((char *)$1, CHNULL); }
145 out2: uexpr SCOMMA uexpr
146 { $$ = mkchain((char *)$1, mkchain((char *)$3, CHNULL) ); }
148 { $$ = mkchain((char *)$1, mkchain((char *)$3, CHNULL) ); }
150 { $$ = mkchain((char *)$1, mkchain((char *)$3, CHNULL) ); }
152 { $$ = mkchain((char *)$1, mkchain((char *)$3, CHNULL) ); }
154 { $$ = hookup($1, mkchain((char *)$3, CHNULL) ); }
156 { $$ = hookup($1, mkchain((char *)$3, CHNULL) ); }
160 { $$ = (tagptr) $1; }
162 { $$ = (tagptr) $2; }
163 | SLPAR uexpr SCOMMA dospec SRPAR
164 { $$ = (tagptr) mkiodo($4, mkchain((char *)$2, CHNULL) ); }
165 | SLPAR other SCOMMA dospec SRPAR
166 { $$ = (tagptr) mkiodo($4, mkchain((char *)$2, CHNULL) ); }
167 | SLPAR out2 SCOMMA dospec SRPAR
168 { $$ = (tagptr) mkiodo($4, $2); }