Index
A
- addr function, 99, 222
- alfa data type, 34
- alignment of data types, 233
- and operator, 2, 221
- and then operator, 69 to 70
- AnswerBook, xxiii
- Apollo DOMAIN Pascal, 227 to 229
- append function, 102, 222
- argc
- function, 99, 105, 222
- procedure, 105
- argv procedure, 99, 105, 222
- arithmetic
- left shift, 109
- operators, 66
- right shift, 108
- routines, 95
- array data types, 34 to 37
- alfa, 34
- as function return value, 89
- conformant, 89
- data representation, 37
- declaring variables, 34
- initializing variables, 36
- string, 34
- univ parameter type, 89
- varying, 34
- arrays, 73
- arshft function, 97, 107, 171, 222
- ASCII character set, 1
- asl function, 97, 109, 222
- asr function, 97, 111, 171, 223
- assert statement, 48, 221
- assignment statement, 13, 18, 20, 22
- assignments, 63 to 65
- compatibility rules, 64
- data types, 63
- extensions, 221
- null strings, 65
- string constants, 65
- strings, to and from, 64
B
- -b option to pc command, 214
- bell character, 23, 220
- bit operators, 66
- bitwise operators, 151
- and, 2, 221
- not, 201, 221
- or, 2, 201, 221
- block buffering, 214
- boolean
- expression, 48
- operators, 66
- and then, 69 to 70
- or else, 71
- boolean data types, 20 to 21
- assignment compatibility rules, 63
- declaring constants, 21
- declaring variables, 20
- initializing variables, 20
- buffering
- block, 214
- file output, 213
- line, 214
- built-in procedures and functions, 2
- nonstandard, 95 to 201, 203, 222
- standard, 95, 203
C
- -C option to pc command, 48, 218
- C programming language, 94, 204
- card function, 96, 112, 223
- case statement, 48, 51 to 52, 157, 221
- otherwise clause, 51, 58
- range of constants, 52
- with -xl option, 51
- character
- data type, 23
- assignment compatibility rules, 63
- bell, 23, 220
- data representation, 23
- declaring constants, 23
- declaring variables, 22
- maxchar, 23, 220
- minchar, 23, 220
- tab, 23, 220
- set, 1
- string routines, 97
- clock function, 99, 113, 223
- close procedure, 98, 116, 204, 223
- comments, 6, 48, 214, 219
- concat function, 117, 223
- conformant array, 89
- const declaration, 77, 79, 222
- conventions, typographical, xxii
D
- data structure, 213
- data types
- alignment, 233
- array, 34 to 37
- assignments, 63
- boolean, 20 to 22
- enumerated, 24
- extensions, 220
- file, 41
- integer, 232
- internal representation
- with -xl, 235
- without -xl, 234
- pointer, 41 to 45, 80
- real, 231
- real, 13 to 15
- record, 27 to 33
- set, 38 to 39
- size restrictions, 232
- space allocation, 232
- subrange, 25
- date procedure, 99, 118, 223
- declarations, 77 to 84
- const, 79, 222
- define, 222
- extensions, 221
- label, 222
- type, 222
- var, 14, 18, 27, 80 to 83
- default field widths, 236
- define
- declaration, 83, 222
- variable, 80, 222
- discard procedure, 99, 120, 223
- documentation, xxiii to xxiv
- DOMAIN Pascal, 227 to 229
- features accepted but ignored, 227, 228
- features not supported, 229
- -xl option, 227
- double data type, 13, 220, 232
E
- enumerated data, 23, 24
- assignment compatibility rules, 63
- data representation, 24
- with read and readln procedures, 23
- with write and writeln procedures, 23
- eof function, 135, 204 to 207
- eoln function, 135, 204 to 209
- error
- file, stderr, 212
- recovery of input and output, 214
- errout file variable, 211
- exit statement, 52 to 53, 221
- expo function, 96, 123, 223
- extensions, 219 to 225
- assignments and operators, 221
- built-in routines, 222
- data types, 220
- heading and declarations, 221
- input and output, 225
- lexical elements, 219
- procedures and functions, 222
- program compilation, 225
- statements, 221
- extern
- option, 92, 222
- variable, 82, 84, 222
- external option, See extern option
F
- field widths, default, 236
- file
- permanent, 210
- stderr, 211
- stdin, 212
- stdout, 211
- temporary, 211
- file data type, 41
- with -s option, 41
- with -V0 and -V1 options, 41
- file identifiers
- input, 117
- output, 117
- file variable, 210
- errout, 211
- input, 211
- output, 211
- files
- external and Pascal file variables, 210
- how to close, 117
- permanent and temporary, 210
- filesize function, 124, 223
- firstof function, 96, 126, 223
- flush procedure, 98, 130, 204, 213, 223
- for statement, 52, 56, 221
- formal parameter, 88, 92
- FORTRAN programming language, 94
- forward option, 91
- function
- addr, 99
- append, 102
- argc, 99, 105
- arshft, 97, 107, 171
- asl, 97, 109
- asr, 97, 111, 171
- association with define declaration, 84
- built-in, 95
- card, 96, 112
- clock, 99, 113
- concat, 117
- declarations, 77
- eof, 135, 204 to 207
- eoln, 135, 204 to 209
- expo, 96, 123
- extensions, 222
- extern option, 92
- external option, 92
- filesize, 124, 223
- firstof, 96, 126
- forward option, 92
- getenv, 99, 132
- getfile, 98, 134, 204, 215
- in_range, 138
- index, 97, 139
- internal option, 92
- land, 97, 142
- lastof, 144
- length, 97, 145
- lnot, 97, 149
- lor, 97, 150
- lshft, 97, 152
- lsl, 97, 153
- lsr, 97, 153
- max, 96, 153
- min, 96, 156
- nonpascal option, 94
- parameters, 85 to 88
- private, 84, 92, 222
- public, 84, 222
- random, 96, 162
- return statement, 59 to 60
- return value, 89, 121
- returning structured types, 222
- rshft, 97, 171
- seed, 96, 172
- sizeof, 96, 176
- substr, 97, 183
- sysclock, 99, 114, 184
- tell, 224
- time, 185
- trim, 97, 191, 225
- type transfer, 99, 193
- var declaration, 14, 18, 21, 23, 28
- variable option, 92
- wallclock, 99, 195
- xor, 97, 200
G
- getenv function, 99, 132, 223
- getfile function, 98, 134, 204, 215, 223
- global variable, 81
- goto statement, 48, 54, 59, 221
- exiting current block, 54
- use of identifier in, 54
H
- halt procedure, 99, 136, 223
- headings
- extensions, 221
- function, 84
- program, 210
I
- identifiers, 2, 4, 54, 59
- as labels, 77
- in define declaration, 83
- nonstandard predeclared, 4, 220
- restrictions to, 231
- standard predeclared, 4, 220
- if statement, 48, 208, 221
- implementation restrictions, 231 to 236
- in out parameter, 85, 88
- in parameter, 85, 88, 215
- in_range function, 138, 223
- include directive and statement, 216
- index function, 97, 139, 223
- initializing variables, 83
- input
- environment, 203 to 218
- error recovery, 214
- extensions, 225
- file
- stdin, 212
- variable, 211
- input and output
- library, 212
- routines, nonstandard and standard, 204
- trap handler, 215
- integer data types, 16 to 20
- assignment compatibility rules, 63
- data representation, 19
- declaring constants, 18
- integer, 17
- integer16, 17, 220
- integer32, 220
- maxint, 232
- minint, 19, 232
- specifying in another base, 19
- unsigned integer, 17
- integer16, 20, 220
- integer32, 17, 20, 220
- interactive programming, 203
- internal option, 92, 222
- ioerr.h file, 215
K
- keywords, 2
L
- -L option to pc command, 2, 228
- label declaration, 77, 222
- land function, 97, 142, 223
- lastof function, 144, 223
- length function, 97, 145, 223
- lexical
- characters, 1
- elements, 1
- line buffering, 214
- linelimit procedure, 98, 147, 204, 223
- lnot function, 97, 149, 223
- local variable, 80, 81, 100
- longreal, 220
- lor function, 97, 150, 224
- lowercase characters, mapping, 2
- lshft function, 97, 151, 224
- lsl function, 97, 153
- lsr function, 97, 153, 224
M
- manuals, See documentation
- mapping to lowercase characters, 2
- max function, 153, 224
- maxchar, 23, 220
- message procedure, 98, 155, 204, 213, 224
- min function, 96, 156, 224
- minchar, 23, 220
- mod operators, 66
- modules
- extern or external option, 92, 222
- extern variables, 82, 84
- public and private routines, 84
- scope of variables, 80
N
- nested routines, 235
- next statement, 56
- nil, 79
- nonpascal option, 94, 222
- nonstandard special symbols
- !, 2, 219
- #, 2, 219
- %, 2, 219
- &, 2, 219
- |, 2, 219
- ~, 2, 219
- not operator, 2, 201, 221
- null procedure, 99, 157, 224
- null string assignments, 65
O
- open procedure, 98, 117, 158, 204, 210, 224
- operators, 66 to 76, 79
- and, 2, 221
- and then, 69 to 70
- arithmetic, 66
- bit, 66, 68
- boolean, 66, 68
- extensions, 221
- mod, 66
- not, 2, 201, 221
- or, 2, 201, 221
- or else, 70
- precedence of, 76
- relational, 66, 72
- set, 66, 71
- string, 66, 75
- options for routines, 91 to 94
- extern or external, 92, 222
- internal, 92
- nonpascal, 94, 227
- variable, 92
- or else operator, 70
- or operator, 2, 201, 221
- otherwise clause in case statement, 51, 58
- out parameter, 85, 88
- output
- environment, 203 to 218
- error recovery, 214
- extensions, 225
- file
- buffering, 213
- stdout, 212
- variable, 211
P
- packed records, 30
- parameters, 84 to 89
- formal, 86, 88, 92
- in, 85, 88, 215
- in out, 85, 88
- out, 85, 88
- passing conventions, 86
- type checking, 88
- univ type, 88
- value, 86
- var, 86, 88
- Pascal
- extensions in the compiler, xix
- symbols, 2
- validation summary, 237 to 240
- pc command
- -b option, 214
- -C option, 48, 218
- document reference, 2
- -L option, 2, 228
- -s option, 2, 3
- -V0 option, 3
- -V1 option, 3
- -xl option, 9, 17, 24, 94, 227, 234
- pcexit procedure, 99
- pointer data type, 41 to 45
- assignment compatibility rules, 63
- data representation, 45
- declaring variables, 42
- initializing variables, 45
- procedure and function, 43, 80
- univ_ptr, 42
- universal, 80
- precedence of operators, 76
- private
- function, 84
- procedure, 84
- variable, 81, 222
- procedure
- append, 222
- argc, 105
- argv, 99, 105
- association with define declaration, 84
- built-in, 95
- close, 98, 116, 204
- date, 99, 118
- declarations, 77
- discard, 99, 120
- extensions, 222
- extern option, 92
- external option, 92
- flush, 98, 130, 204, 213
- forward option, 92
- halt, 99, 136
- internal option, 92
- linelimit, 98, 147, 204
- message, 98, 155, 204, 213
- nonpascal option, 94
- null, 99, 157
- open, 98, 117, 158, 204, 210
- parameters, 85 to 89
- pcexit, 99
- private, 92, 222
- public, 222
- read, 23, 98, 163, 204, 205, 207, 209, 211
- readln, 23, 98, 135, 163, 204, 207, 209, 211
- remove, 98, 166, 204
- reset, 98, 117, 135, 167, 204, 212
- return statement, 59
- rewrite, 98, 135, 168, 204, 211
- seek, 174, 224
- stlimit, 99, 180
- stradd, 182, 224
- time, 99, 187
- trace, 225
- var declaration, 14, 21, 23, 28, 36, 39, 83
- variable option, 92
- write, 24, 98, 155, 198, 204, 211, 212
- writeln, 24, 98, 155, 198, 204, 211, 212
- program
- compilation extensions, 225
- headings, 210
- unit, 84
- public
- function, 84
- procedure, 84
- variable, 81, 84, 222
R
- random function, 162, 224
- read procedure, 23, 98, 163, 204, 205, 207, 209, 211, 224
- readln procedure, 23, 98, 135, 163, 207, 209, 211, 224
- real data types, 13 to 15
- as function return value, 89
- data representation, 15
- declaring
- constants, 14
- variables, 13
- double, 13, 220, 232
- longreal, 13, 220
- real, 13, 15
- shortreal, 13, 15, 220
- single, 13, 15, 220, 232
- with -xl option, 13, 17
- record data type, 26 to 33
- as function return value, 89
- assignment compatibility rules, 63
- declaring variables, 26
- initializing
- data, 27
- variables, 83
- representation of unpacked records, 30
- records, 73
- relational operators, 66, 72
- remove procedure, 98, 166, 204, 224
- repeat statement, 52, 56, 221
- reserved words, 3
- nonstandard extensions, 4
- standard, 3
- reset procedure, 98, 117, 135, 167, 204, 212, 224
- return statement, 59, 221
- rewrite procedure, 98, 117, 135, 168, 204, 211, 225
- routine
- addr, 96, 99, 222
- append, 98, 102
- argc, 99, 105, 222
- argv, 99, 105, 222
- arithmetic, 95
- arshft, 97, 108, 171, 222
- asl, 97, 110, 222
- asr, 97, 171, 223
- built-in, 95 to 201
- card, 96, 112, 223
- clock, 99, 114, 223
- close, 98, 116, 204, 223
- concat, 97, 223
- date, 99, 118, 223
- discard, 121, 223
- eof, 135, 204 to 207
- eoln, 135, 204 to 209
- expo, 96, 123, 223
- extern option, 92
- external option, 92
- filesize, 98
- firstof, 96, 126, 223
- flush, 98, 130, 204, 213, 223
- forward option, 91
- getenv, 99, 223
- getfile, 98, 135, 204, 215, 223
- halt, 99, 136, 223
- in_range, 96, 138, 223
- index, 97, 139, 140, 223
- input and output, 203
- internal option, 92
- land, 97, 142, 223
- lastof, 96, 144, 223
- length, 97, 146, 223
- linelimit, 98, 147, 204, 223
- lnot, 97, 149, 223
- lor, 97, 150, 224
- lshft, 97, 152, 224
- lsl, 97, 153
- lsr, 97, 153, 224
- max, 96, 224
- message, 98, 155, 204, 213, 224
- min, 96, 157, 224
- nonpascal option, 94
- null, 99, 157, 224
- open, 98, 117, 158, 204, 210, 224
- parameters, 85 to 89
- private, 84, 92
- public, 84
- random, 96, 162, 224
- read, 98, 163, 204, 205, 207, 209, 211, 224
- readln, 98, 135, 163, 204, 207, 209, 211, 224
- remove, 98, 166, 204, 224
- reset, 98, 117, 135, 167, 204, 212, 224
- return statement, 59
- rewrite, 98, 117, 135, 169, 204, 211, 225
- rshft, 97, 171, 224
- seed, 96, 172, 224
- seek, 98
- sizeof, 96, 176, 224
- stlimit, 99, 180, 224
- stradd, 97
- substr, 97, 183, 224
- sysclock, 99, 114, 184, 224
- tell, 98, 185, 224
- time, 99, 187, 224
- trace, 99, 189, 225
- trim, 97, 191, 225
- type transfer, 99, 193, 225
- var declaration, 36, 39
- variable option, 92
- wallclock, 99, 195, 225
- write, 98, 155, 198, 204, 211, 212, 225
- writeln, 98, 155, 198, 204, 211, 212, 225
- xor, 97, 200, 225
- routine parameters, 85 to 89
- routines, 79
- rshft function, 97, 171, 224
S
- -s option to pc command, 2, 3
- scope of variables
- private, 80
- public, 80
- seed function, 162, 172, 224
- seek procedure, 174, 224
- set
- data types, 38 to 39
- as function return value, 91
- assignment compatibility rules, 63
- data representation, 39
- declaring variables, 38
- returning number of elements, 112
- initializing variables, 83
- operators, 66, 71
- shortreal, 13, 15, 220
- signal handler, 214
- single, 13, 15, 220, 232
- sizeof function, 176, 224
- space allocation of data types, 233
- special symbols, nonstandard and standard, 2
- standard files
- error, 212
- input, 212
- output, 212
- statements, 47 to 62
- assert, 48, 221
- case, 47, 51 to 52, 157, 221
- exit, 52 to 53, 221
- extensions, 221
- for, 52, 56, 221
- goto, 48, 54, 59, 221
- if, 48, 208, 221
- next, 56
- repeat, 52, 56, 221
- return, 59, 221
- while, 52, 56, 206, 209, 221
- with, 47, 60, 221
- static variable, 14, 18, 21, 23, 28, 37, 39, 83, 222
- stderr, 204, 211
- stdin, 212
- stdout, 211
- stlimit procedure, 99, 180, 224
- stradd procedure, 182, 224
- string
- assignments, 64
- constants, assignments, 65
- data type, 34
- operators, 66, 75
- subrange data, 17, 25 to 26
- assignment compatibility rules, 63
- data representation, 25
- declaring variables, 25
- with -xl option, 26
- substr function, 97, 183, 224
- symbols, 2
- sysclock function, 99, 114, 184, 224
T
- tab character, 23, 220
- tell function, 185, 224
- time procedure, 99, 187, 224
- trace procedure, 225
- trace routine, 189
- trim function, 97, 191, 225
- type checking of parameters, 88
- type declaration, 222
- type transfer function, 193, 225
- typographical conventions, xxii
U
- univ parameter, 85
- univ parameter type, 88
- univ_ptr, 42, 100, 135
- unpacked records
- fixed, 30
- variant, 30
- unsigned integer, 17
V
- -V0 option to pc command, 3
- -V1 option to pc command, 3
- value parameter, 86, 88
- value parameter, 85
- var
- declaration, 14, 18, 20, 22, 27, 36, 80 to 83, 222
- attributes, 80
- initialization, 83
- scope, 80
- parameter, 86, 88
- var parameter, 85
- variable
- attributes, 80
- define, 81, 83, 222
- extern, 81, 82, 84, 222
- global, 80
- initialization, 83
- local, 80, 83, 100
- option, 92, 222
- private, 80, 222
- public, 80, 81, 83, 222
- scope, 80
- static, 81, 222
- varying data type, 34
W
- wallclock function, 99, 195, 225
- while statement, 52, 56, 206, 209, 221
- with
- alternate form, 60 to 62
- statement, 48, 221
- write procedure, 23, 98, 155, 198, 204, 211, 212, 225
- writeln procedure, 23, 98, 155, 198, 204, 211, 212, 225
X
- -xl option to pc command, 9, 17, 24, 227
- with define attribute, 83
- with nonpascal routine option, 94
- xor function, 97, 200, 225