162van Wijngaarden, et al.ALGOL <strong>68</strong> Revised Report163i)J)proc 9 string to Lint = (string s, int radix, ref Lint iJ bool :¢ returns true if the absolute value of the result is
164 van Wijngaarden, et al.b) op .a straightin = tintype x) [ ] simplin :c the result of straightening 'x' c ;e) The result of "straightening" a given value Y is a multiple value W{of one dimension} obtained as follows:• it is required that V {if it is a name} be not nil:• a counter i is set to O:• Y is "traversed" {d} using i;• W is composed of a descriptor ((1, i)) and the elements obtained bytraversing V;• if Y is not (is) a name, then the mode of the result is the mode specifiedby [ ] simplout ([ ] simplin).d) A value Y is "traversed", using a counter i, as follows:If Y is (refers to) a value from whose mode that specified by simplout isunited,then• i is increased by one;• the element of W selected by (i) is V:otherwise,Case A: V is {refers to) a multiple value {of one dimension} having adescriptor ((I, u)) :• for j = I ..... u, the element (the subname) of V selected by (j) istraversed using i:Case B: Y is (refers to) a multiple value {of n dimensions, n >_ 2} whosedescriptor is ((I 1, Ul), 02 , u2) ..... (I n , u )) where n >_ 2:n• for j= 11 ..... u 1, the multiple value selected {2.1.3.4.i} by (thename generated {2.1.3.4.j} by) the trim (j, 0 2, u 2, 0) .....(I n, u n, 0))is traversed using i;Case C: Y is (refers to) a structured value VI:• the fields (the subnames of V referring to the fields) of Yl, takenin order, are traversed using i.10.3.3. Formatless transput{In formatless transput, the elements of a "data list" are transput, oneafter the other, via a specified file. Each element of the data list is eithera layout routine of the mode specified by proc (raf file) void (10.3.1.6) or avalue of the mode specified by outtype (on output) or intype (on input). Onencountering a layout routine in the data list, that routine is called withthe specified file as parameter. Other values in the data list are firststraightened {10.3.2.3) and the resulting values are then transput via thegiven file one after the other.Transput normally takes place at the current position but, if there is noroom on the current line (on output) or if a readable value is not presentthere (on input), then first, the event routine corresponding to on line endALGOL <strong>68</strong> Revised Report 165(or, where appropriate, to on page end, on physical file end oron logical file end) is called, and next, if this returns false, the next "good"character position of the book is found, viz., the first character position ofthe next nonempty line.}10.3.3.1. Formatless output{For formatless output, put (a) and print (or write) (10.5.l.d) may beused. Each straightened value Y from the data list is output as follows:aa) If the mode of V is specified by L int, then first, if there is notenough room for Lint width + 2 characters on the remainder of thecurrent line, a good position is found on a subsequent line (see 10.3.3):next, when not at the beginning of a line, a space is given and then V isoutput as if under the control of the picture n(L int width - 1)z + d.bb) If the mode of V is specified by L real, then first, if there is notenough room for L ~eal width + L exp width + 5 characters on the currentline, then a good position is found on a subsequent line; next, when not atthe beginning of a line, a space is given and then V is output as if undercontrol of the picture+d. n(L real width - 1)den(L exp width - 1)z +d.ce) If the mode of V is specified by L compl, then first, if there is notenough room for 2 x (L real width + L exp width) + 11 characters on thecurrent line, then a good position is found on a subsequent line; next,when not at the beginning of a line, a space is given and then Y is outputas if under eontrol of the picture+d. n(L real width - 1)den(L exp width - 1)z +d". "i+d. n(L real width - 1)den(L exp width - 1)z +d.dd) If the mode of Y is specified by bool, then first, if the current lineis full, a good position is found on a subsequent line; next, if Y is true(false), the character yielded by flip (flop) is output (with no interveningspace).ee) If the mode of V is specified by L bits, then the elements of theonly field of V are output (as in dd) one after the other (with nointervening spaces, and with new lines being taken as required).ff) If the mode of V is specified by char, then first, if the current lineis full, a good position is found on a subsequent line; next V is output (withno intervening space).gg) If the mode of V is specified by [ J char, then the elements of Yare output (as in ff) one after the other (with no intervening spaces, andwith new lines being taken as required).}
- Page 2 and 3:
van Wijngaarden, et al.1.1.4.2. Par
- Page 4:
Acknowledgements{Habent sua fata li
- Page 8 and 9:
14 van Wijngaarden, et al.0.3.4. Mo
- Page 10 and 11:
. . . . . . . 4 " ' 0 . . . . . . .
- Page 12 and 13:
22 van Wijngaarden, et al.• let P
- Page 14 and 15:
26 van Wijngaarden, et al.{Since so
- Page 16 and 17:
30 van Wijngaarden, et aLloperandfo
- Page 18 and 19:
34 van Wijngaarden, et al.j) WHETHE
- Page 20 and 21:
38 van Wijngaarden, et al.A protono
- Page 22 and 23:
42 van Wijngaarden, et al.d) If N i
- Page 24 and 25:
46 van Wijngaarden, et al.c) {There
- Page 26 and 27:
50 van Wijngaarden, et al.c) The ph
- Page 28 and 29:
54 van Wijngaarden, et al.3.1.1. Sy
- Page 30 and 31:
58 van Wijngaarden, et al.where (RO
- Page 32 and 33: 62 van Wijngaarden, et al.1) SOlD N
- Page 34 and 35: 66 van Wijngaarden, et al.ALGOL 68
- Page 36 and 37: 70 van Wijngaarden, et el.For each
- Page 38 and 39: 74 van Wijngaarden, et al.If 'MODE"
- Page 40 and 41: 78 J van Wijngaarden, et al.C) SECO
- Page 42 and 43: 82 van Wijngaarden, et al.ALGOL 68
- Page 44 and 45: 86 van Wijngaarden. et al.ALGOL 68
- Page 46 and 47: 90 van Wijngaarden, et al.5.4.4.1.
- Page 48 and 49: 94van Wijngaarden, et al.ALGOL 68 R
- Page 50 and 51: 98 van Wijngaarden, et al.Assignati
- Page 52 and 53: 102 van Wijngaarden, et at.{A nest,
- Page 54 and 55: 106 van Wijngaarden, et al.'HEAD's
- Page 56 and 57: 110 van Wijngaarden, et al.ALGOL 68
- Page 58 and 59: 114van Wijngaarden, et al.ALGOL 68
- Page 60 and 61: 118 van Wijngaarden, et al.ALGOL 68
- Page 62 and 63: 122 van Wijngaarden, et al.style ii
- Page 64 and 65: 126 van Wijngaarden, et al.b) The c
- Page 66 and 67: 130van Wijngaarden, et al.ALGOL 68
- Page 68 and 69: 134van Wijngaarden, et al.ALGOL 68
- Page 70 and 71: 138d)e)f)g)h)i)J)k)1)m)n)van Wijnga
- Page 72 and 73: 142 van Wijngaarden, et al.physics
- Page 74 and 75: 146 van Wijngaarden, et al.gg) On s
- Page 76 and 77: 150van Wijngaarden, et al.ALGOL 68
- Page 78 and 79: 154/van Wijngaarden, et al.ALGOL 68
- Page 80 and 81: 158 van Wijngaarden, et el.fi;ref p
- Page 84 and 85: 166van Wijngaarden, et al.ALGOL 68
- Page 86 and 87: 170/van Wijngaarden, etal.ALGOL 68
- Page 88 and 89: 174J)K)L)M)N)O)P)a)b)c)d)e)van Wijn
- Page 90 and 91: 178/van Wijngaarden, et al.ALGOL 68
- Page 92 and 93: 182 van Wijngaarden, et al.• let
- Page 94 and 95: 186van Wijngaarden, et al./ALGOL 68
- Page 96 and 97: 190 van Wijngaarden, etal.composed
- Page 98 and 99: 194h)i)J)van Wijngaa(rden, et al.pr
- Page 100 and 101: 198 van Wijngaarden, et al.¢ strin
- Page 102 and 103: 202tvan Wijngaarden, et al.ALGOL 68
- Page 104 and 105: 206 van Wijngaa~den. et al.10.3.6.1
- Page 106 and 107: 210 van Wijngaarden, et al.!ALGOL 6
- Page 108 and 109: 214 van Wijngaarden, et al.inoperat
- Page 110 and 111: 218fvan Wijngaarden, et al.¢ move
- Page 112 and 113: 222 van Wijngaarden, etaL{overflow}
- Page 114 and 115: 226 van Wijngaarden, et al.ALGOL 68
- Page 116 and 117: 230max int 10.2.1.cmax real 10.2.l.
- Page 118 and 119: 234 van Wijngaarden, et al.ALGOL 68