Programming languages - Pascal (ISO/IEC 7185:1990)

Mutual understanding and communication. Interface. Quality. Consumer protection. Stability of Pascal language/portability of Pascal programs.

Programmiersprachen - Pascal (ISO/IEC 7185:1990)

Verstaendigung und Kommunikation. Schnittstelle. Qualitaet. Verbraucherschutz. Stabilitaet d. Pascal-Sprache/Uebertragbarkeit d. P.-Programme

Langages de programmation - Pascal (ISO/IEC 7185:1990)

Compréhension mutuelle et communication. Interface. Qualité. Protection des consommateurs. Stabilité du langage Pascal/portabilité des programmes Pascal.

Programming languages - Pascal (ISO/IEC 7185:1990)

General Information

Status
Withdrawn
Publication Date
30-Nov-1997
Withdrawal Date
30-Sep-2003
Technical Committee
Current Stage
9900 - Withdrawal (Adopted Project)
Start Date
01-Oct-2003
Due Date
01-Oct-2003
Completion Date
01-Oct-2003

Buy Standard

Standard
EN 27185:1997
English language
80 pages
sale 10% off
Preview
sale 10% off
Preview
e-Library read for
1 day

Standards Content (Sample)

2003-01.Slovenski inštitut za standardizacijo. Razmnoževanje celote ali delov tega standarda ni dovoljeno.Programming languages - Pascal (ISO/IEC 7185:1990)Programmiersprachen - Pascal (ISO/IEC 7185:1990)Langages de programmation - Pascal (ISO/IEC 7185:1990)Programming languages - Pascal (ISO/IEC 7185:1990)35.060Jeziki, ki se uporabljajo v informacijski tehniki in tehnologijiLanguages used in information technologyICS:Ta slovenski standard je istoveten z:EN 27185:1992SIST EN 27185:1997en01-december-1997SIST EN 27185:1997SLOVENSKI
STANDARD



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



SIST EN 27185:1997



ISO/IEC 7185:1990(E) Example: case Operator of plus: x := x + y; minus: x := x - y; times: x := x * y end 6.8.3.6 Repetitive-Statements Repetitive-Statements shall specify that certain Statements are to be executed repeatedly. repetitive-Statement = repeat-Statement 1 while-Statement 1 for-Statement . 6.8.3.7 Repeat-Statements repeat-Statement = ‘repeat’ Statement-sequence ‘until’ Boolean-expression . The statement-sequence of the repeat-Statement shall be repeatedly executed, except as modified by the execution of a goto-Statement, until the Boolean-expression of the repeat-Statement yields the value true on completion of the Statement-sequence. The Statement-sequence shall be executed at least once, because the Boolean-expression is evaluated after execution of the Statement-sequence. Example: repeat k := i mod j; i := j; j :-k until j = 0 6.8.3.8 While-Statements while-Statement = ‘while’ Booleanexpression ‘do’ Statement . The while-Statement while b do body shall be equivalent to begin if b then repeat bdY until not (b) end Examples: while i > 0 do begin if edd(i) then z :- z * x; i :- i div 2; X := sqr(x) end while not eof(f) do begin process(ft); get(f) SIST EN 27185:1997



ISOIIEC 7185:1990(E) 6.8.3.9 For-Statements The for-Statement shall specify that the Statement of the for-Statement is to be repeatedly executed while a Progression of val .ues is attributed to a variable denoted by the control-variable of the for-Statement. for-Statement = ‘for’ control-variable ‘:=’ initial-value ( ‘to’ 1 ‘downto’ ) final-value ‘do’ Statement . control-variable = entire-variable . initial-value = expression . final-value = expression . The control-variable shall be an entire-variable whose identifier is declared in the variable-declaration-part of the block closest-containing the for-Statement. The control-variable shall possess an ordinal-type, and the initial-value and final-value shall be of a type compatible with this type. The initial-value and the final- value shall be assignment-compatible with the type possessed by the control-variable if the Statement of the for-Statement is executed. After a for-Statement is executed, other than being left by a goto-Statement, the control-variable shall be undefined. Neither a for-Statement nor any procedure-and-function-declaration- part of the block that closest-contains a for-Statement shall contain a Statement threatening the variable denoted by the control-variable of the for-Statement. A Statement S shall be designated as threatening a variable V if one or more of the following Statements is true. a) S is an assignment-Statement and V is denoted by the variable-access of S. b) S contains an actual variable Parameter that denotes V. d) S is a Statement specified using an equivalent program fragment containing a Statement threatening v. Apart from the restrictions imposed by these requirements, the for-Statement for v := el to e2 do body shall be equivalent to begin templ := el; temp2 := e2; if templ <= temp2 then begin V := templ; twf; while v <> temp2 do begin V := succ(v); MdY end end and the for-Statement 47 SIST EN 27185:1997



ISO/IEC 7185: 1990(E) for v := el downto e2 do body shall be equivalent to begin templ := el; ’ temp2 := 62; if templ >= temp2 then begin V := templ; body; while v <> temp2 do begi n v := pred(v); body end where templ and temp2 denote auxiliary variables that the program does not otherwise contain, and that possess the type possessed by the variable v if that type is not a subrange-type; otherwise the host-type of the type possessed by the variable v. Examples: for i :- 2 to 63 do if a[i] > max then max :- a[i] for i :- 1 to 10 do for j :- 1 to 10 do begin X := 0; for k :- 1 to 10 do X := x t ml[i,k] * m2[k,j]; m[i,j] := x end for i t- 1 to 10 do for j :- 1 to i - 1 do m[i] [j] := 0.0 for c :- blue downto red do q(c) 6.8.3.10 With-Statements with-Statement = ‘with’ record-variable-list ‘do’ Statement . record-variable-list = record-variable { ‘,’ record-variable } . field-designator-identifier = identifier . A with-Statement shall specify the execution of the Statement of the with-Statement. The occurrence of a record-variable as the only record-variable in the record-variable-list of a with-Statement shall constitute the defining-point of each of the field-identifiers associated with components of the record-type possessed by the record-variable as a field-designator-identifier for the region that is the Statement of the with-Statement; each applied occurrence of a field-designator-identifier shall denote that component of the record-variable 48 SIST EN 27185:1997



ISO/IEC 7185: 1990(E) that is associated with the field-identifier by the record-type. The record-variable shall be accessed before the Statement of the with-Statement is executed, and that access shall establish a reference to the variable during the entire execution of the Statement of the with-Statement. The Statement with VI ,v2,.,vn do s shall be equivalent to with vl do with v2 do .*. with vn do s Example: with date do if month = 12 then begin month :- 1; year := year t 1 end eise month := monthtl has the same effect on the variable date as if date.month = 12 then begin date.month := 1; date.year := date.yeartl end else date.month :- date.monthtl 6.9 Input and output 6.9.1 The procedure read The Syntax of the Parameter list of read when applied to a textfile shall be r~&parmeter-list = ‘(’ [ file-variable ‘ ,’ ] variable-access { ‘ ,’ variable-access } ‘) ’ . If the file-variable is omitted, the procedure shall be applied to the required textfile input, and the program shall contain a program-parameter-list containing an identifier with the spelling input. The requirements of this subclause shall apply for the procedure read when applied to a textfile; therein, f shall denote the textile. The effects of applying read(f,v) to the textfile f shall be defined by pre-assertions and post-assertions within the requirements of 6.6.5.2. The pre-assertion of read(f,v) shall be the pre- assertion of get(f). Let t denote a sequence of components having the char-type; let r, s, and u each denote a value of the sequence-type defined by the structure of the type denoted by text; if u = S( ), then let t = S( ); otherwise, let u.first = end-of-line; let w = fOt or w = fO.R.first, where the decision as to which shall be implementation-dependent; and let r -s -t -u = w -fO.R.rest. The post-assertion of read(f,v) shall be (f.M = f0.M) and (f.L - f.R = f0.L - f0.R) and (f.R = t - u) and (if f.R = S( ) then (ft is totally-undefined) else (ft = f.R.first)). NOTE - 1 The variable-access is not a variable Parameter. Consequently, it may be a component of a packedstructure, and the value of the buffer-variable need only be assignment-compatible with it. a) For n>=l, read(f,vl, . . .v.) shall access the textfile and establish a reference to that textfile for the remaining execution of the Statement; each of v1 ,.,vn shall be a variable-access possessing a type that is the real-type, is a string-type, or is compatible with the char-type or with the integer-type. For n>=2, the execution of read(f,vl ,.,vJ shall be equivalent to 49 SIST EN 27185:1997



ISO/IEC 7185: 1990(E) begin read(ff ,vl); read(ff ,vz,.,v,J end b) be ff denotes the referenced texffile. If v is a variable-access possessing the char-type (0r subrange thereof) 9 the execution of read(f,v) shall equivalent to begin v := f-ft; get(ff) end where ff denotes the referenced textfile. NOTE - 2 To satisfy the post-assertions of get and of read(f,v) requires r = S( ) and length(s) = 1. c) If v is a variable-access possessing the integer-type (or subrange thereof’), read(f,v) shall satisfy the following requirements. No component of s shall equal end-of-line. The components of r, if any, shall each, and (s -t -u).first shall not, equal either the char-type value space or end-of-line. Either s shall be empty or s shall, and s -S(t.first) shall not, form a signed-integer according to the Syntax of 6.1.5. It shall be an error if s is empty. The value of the signed-integer thus formed shall be assignment-compatible with the type possessed by v and shall be attributed to v. NOTE - 3 The sequence signed-integer to be read. r represents spaces end-of-lines to be skipped, sequence S represents d) If v is a variable-access possessing the real-type, read(f,v) shall satisfy the following requirements. No component of s shall equal end-of-line. The components of r, if any, shall each, and (s -t -u).first shall not, equal either the char-type value space or end-of-line. Eilher s shall be empty or s shall, and s -S(t.first) shall not, form a signed-number according to the Syntax of 6.1.5. It shall be an error if s is empty. The value denoted by the number thus formed shall be attributed to the variable v. NOTE - 4 The sequence number to be read. r represents spaces and end-of-lines to be skipped, and the sequence s represents the 6.9.2 The procedure readln The Syntax of the Parameter list of readln shall be readln-parameter-list = [ c(, ( file-variable ] variable-access ) { ‘,’ variable-access } ‘)’ ] . Readln shall only be applied to textfiles. If the file-variable or the entire readln-parameter-list is omitted, the procedure shall be applied to the required textfile input, and the program shall contain a prograrn- parameter-list containing an identifier with the spelling input. Readln(f,vl ,.,v~) shall access the textfile and establish a reference to that execution of the Statement. The execution of the Statement shall be equivalent textfile for the to remain ing begin read(ff ,vl ,.,v~); readln(ff) end where ff denotes the referenced textfile. Readln(f) shall access the textfile and establish a reference to that textfile for the remaining execution of the Statement. The execution of the Statement shall be equivalent to begin while not eoln(ff) do get(ff); get(ff) end where ff denotes the referenced textfile. NOTES 1 The effect of readln is to place the current file Position just past the end of the current line thisis the end-of-file Position, the current file Position is therefore at the Start of the next line. 50 in the texffile. Unless SIST EN 27185:1997



ISO/IEC 7185:1990(E) 2 Because the definition of readIn makes use of get, the implementation-defined aspects of he post-a,ssedon of get also apply (see 6.652). 6.9.3 The procedure write The Syntax of the Parameter list of write when applied to a textile shall be write-parameter-list = ‘ (’ [ file-variable ‘ ,’ ] write-Parameter { ‘,’ write-Parameter } ‘)’ . write-Parameter = expression [ ‘:’ expression [ ‘:’ expression ] ] . If the file-variable is omitted, the procedure shall be applied to the required textile output, and the program shall contain a program-parameter-list containing an identifier with the spelling output. When write is applied to a textfile f, it shall be an error if f is undefined or f.M = Inspection (see 6.4.3.5). For n>=l, ~W,Pl r-•J?Pl) shall execution of the Statement . For access the texffile and establish a reference to that textfile for the remaining n>=2, the execution of the Statement shall be equivalent to begin write(ff ,pl); write(ff ,p2,.,pn) end where ff denotes the referenced textfile. Write(f,p), where f denotes a textfile and p is a write-Parameter, shall write a sequence of Zero or more characters on the texffile f; for each Character c in the sequence, the equivalent of begin fft := c; put(ff) end where ff denotes the referenced textfile, shall be applied to the textfile f. The sequence of characters written shall be a representation of the value of the first expression in the write-Parameter p, as specified in the remainder of this subclause. NOTE - Because the definition of write assertion of put also apply (see 6.6.5.2). includes the use of pu& the implementation-defined aspects of the post- 6.9.3.1 Write-Parameters A write-Parameter shall have one of the following forms e : TotalWidth : FracDigits e : TotalWidth e where e shall be an expression whose value is to be written on the file f and shall be of integer-type, real- type, char-type, Booleantype, or a string-type, and where TotalWidth and FracDigits shall be expressions of integer-type whose values shall be the field-width Parameters. The values of TotalWidth and FracDigits shall be greater than or equal to one; it shall be an error if either value is less than one. Write(f,e) shall be equivalent to the form write(f,e : TotalWidth), using a default value for TotalWidth that depends on the type of e; for integer-type, real-type, and Boolean-type, the default values shall be implementation-defined. Write(f,e : TotalWidth : FracDigits) shall be applicable only if e is of real-type (see 6.9.3.4.2). 6.9.3.2 Char-type If e is of char-type, the default value of TotalWidth shall be one. The representation written on the file f shall be (TotalWidth - 1) spaces, the Character value of e. 51 SIST EN 27185:1997



ISO/IEC 7185:1990(E) 6.9.3.3 Integer-type If e is of integer-type, the decimal representation of the value of e shall be written on the file f. Assume a function function IntegerSize ( x : integer ) : integer ; { returns the number of digits, z, such that IO to the power (z-l) I abs(x) e 10 to the power z } and let IntIXgits be the positive integer defined by ife=O then IntDigits := 1 else IntDigits := IntegerSize(e); then the representation shall consist of a) if TotalWidth >= IntDigits + 1: ’ (TotalWidth - IntDigits - 1) spaces, the sign Character: ‘- ’ if e < 0, otherwise a space, IntDigits digit-characters of the decimal representation of abs(e). b) if TotalWidth < IntDigits + 1: if e < 0 the sign Character ‘-‘, IntDigits digit-characters of the decimal representation of abs(e). 6.9.3.4 Real-type If e is of real-type, a decimal representation of the value of e, rounded to the specified number of significant figures or decimal places, shall be written on the file f. 6.9.3.4.1 The floating-Point representation Write(f,e : TotalWidth) shall Cause a floating-Point representation of the value of e to be written. Assume functions function TenPower ( Int : integer ) : real ; { Returns 10.0 raised to the power Int } function RealSize ( y : real ) : integer ; { Returns the value, z, such that TenPower(z-1) I abs(y) < TenPower(z) } function Truncate ( y : real ; DecPlaces : integer ) : real ; { Returns the value of y after truncation to DecPlaces decimal places } let ExpDigits be an implementation-defined value representing the number of digit-characters written in an exponent; let ActWidth be the positive integer defined by if TotalWidth >= ExpDigits + 6 then ActWidth := TotalWidth else ActWidth := ExpDigits + 6; and let the non-negative number ewritten, the positive integer DecPlaces, and the integer ExpValue be defined by 52 SIST EN 27185:1997



ISO/IEC 7185:1990(E) DecPIaces := ActWidth - ExpDigits - 5; if e = 0.0 then begin ewritten := 0.0; ExpValue := 0 end else begin ewritten := abs(e); ExpValue := RealSize ( ewritten ) - 1; ewritten := eWritten / TenPower ( ExpValue ); ewritten := ewritten + 0.5 * TenPower ( -DecPlaces ); if eWritten >= 10.0 then begi n ewritten := eWritten / 10.0; ExpValue := ExpValue + 1 end; eWritten := Truncate ( ewritten, DecPlaces ) end; then the floating-Point representation of the value of e shall consist of the sign Character ( ‘-’ if (e c 0.0) and (ewritten > O.O), otherwise a space ), the leading digit-character of the decimal representation of ewritten, the Character ‘.’ , the next DecPlaces digit-characters of the decimal representation of ewritten, an implementation-defined exponent Character (either ‘e’ or IE’), the sign of ExpValue ( ‘-’ if ExpValue < 0, otherwise ‘+’ ), the ExpDigits digit-characters of the decimal representation of ExpValue (with leading zeros if the value requires them). 6.9.3.4.2 The fixed-Point representation Write(f,e : TotalWidth : FracDigits) shall Cause a fixed-Point representation of the value of e to be written. Assume the functions TenPower, RealSize, and Truncate described in 6.9.3.4.1; let ewritten be the non-negative number defined by if e = 0.0 then ewritten := 0.0 else begin ewritten := abs(e); eWritten := ewritten + 0.5 * TenPower ( - FracDigits ); eWritten := Truncate ( ewritten, FracDigits ) end; let IntDigits be the positive integer defined by if RealSize ( eWritten ) < 1 then IntDigits := 1 else IntDigits := RealSize ( ewritten ); and let MinNumChars be the positive integer defined by 53 SIST EN 27185:1997



ISO/IEC 7185:1990(E) MinNumChars := IntDigits + FracDigits + 1; if (e < 0.0) and (ewritten > 0.0) then MinNumChars := MinNumChars + 1; {‘-’ required} then the fixed-point representation of the value of e shall consist of if TotalWidth >= MinNumChars, (TotalWidth - MinNumChars) spaces, the Character ‘- ’ if (e < 0.0) and (ewritten > O.O), the first IntDigits digit-characters of the decimal representation of the value of ewritten, the Character 7, the next FracDigits digit-characters of the decimal representation of the value of ewritten. NOTE - written. At least MinNumChars characters are written. If TotalWidth is less than this value, no initial spaces 6.9.3.5 Boolean-type If e is of Boolean-type, a representation of the word true or the word false (as appropriate to the value of e) shall be written on the file f. This shall be equivalent to writing the appropriate Character-string f True’ or ’ False’ (see 6.93.6), where the case of each letter is implementation-defined, with a field-width Parameter of TotalWidth. 6.9.3.6 String-types If the type of e is a string-type with n components, the default value of TotalWidth shall be n. The representation shall consist of if TotalWidth > n, (TotalWidth - n) spaces, the first through n-th characters of the value of e in that Order. if 1 <= TotalWidth <= n, the first through TotalWidth-th characters in that Order. 6.9.4 The procedure writeln The Syntax of the Parameter list of writeln shall be writeln-parameter-list = [ ‘(’ ( file-variable ] write-parameter ) { ‘ ,’ write-Parameter } ‘)’ ] . Writeln shall only be applied to textfiles. If the file-variable or the writeln-parameter-list is omitted, the procedure shall be applied to the required textfile output, and the program shaI1 contain a program- parameter-list containing an identifier with the spelling output. Writeln(f,pl,.,p,) shall access the textfile and establish a reference to that textfile for the remaining execution of the Statement. The execution of the Statement shall be equivalent to begin write(ff ,pl ,.,pJ; writeln(ff) end where ff denotes the referenced textfile. Writeln shall be defined by a preassertion and a post-assertion using the notation of 6.6.5.2. pre-assertion: (f0 is not undefined) and (f0.M = Generation) and (f0.R = S( ))* 54 SIST EN 27185:1997



ISO/IEC 7185: 1990(E) post-assertion: (f.L = (f0.L - S(end-of-line))) and (ft is totally-undefined) and (f.R = S( )) and (f.M = Generation), where S(e) is the sequence consisting solely of the end-of-line component defined in 6.4.3.5. NOTE - Writeln(f) texminates the partial line, if any, that is beirigg gemated. By the conventions of 6.6.5.2 it is an error if the pre-assertion is not true Prior to writeln(f). 6.9.5 The procedure page It shall be an error if the pre-assertion required for writeln(f) (see 6.9.4) does not hold Prior to the activation of Page(f). If the actual-parameter-list is omitted, the procedure shall be applied to the required textfile output, and the program shall contain a program-parameter-list containing an identifier with the spelling output. Page(f) shall Cause an implementation-defined effect on the textile f, such that subsequent text written to f will be on a new page if the textfile is printed on a suitable device, shall perform an implicit writeln(f) if f.L is not empty and if f.L.last is not the end-of-line component (see 6.4.3.5), and shall Cause the buffer-variable ft to become totally-undefined. The effect of inspecting a textfile to which the page procedure was applied during generation shall be implementation-dependent. 6.10 Programs program = program-heading ‘;’ program-block ‘.’ . program-heading = ‘program’ identifier [ ‘(’ program-parameter-list ‘)’ ] . program-parameter-list = identifier-list . program-block = block . The identifier of the program-heading shall be the program name. It shall have no significance within the program. The identifiers contained by the program-parameter-list shall be distinct and shall be designated program-Parameters. Esch program-Parameter shall have a defining-point as a variable-identifier for the region that is the program-block. The binding of the variables denoted by the program-Parameters to entities extemal to the program shall be implementation-dependent, except if the variable possesses a file-type in which case the binding shall be implementation-defined. NOTE - The extemal representation of such extemal entities is not defined by this International Standard. The execution of any action, Operation, or function, defined within clause 6 to operate on a variable, shall be an error if the variable is a program-Parameter and, as a result of the binding of the program-pmatneter, the execution cannot be completed as defined. The occurrence of the rquired identifier input or output as a program-Parameter shaI1 constitute its defining-Point for the region that is the program-block as a variable-identifier of the required type denoted by the required type-identifier text. Such occurrence of the identifier input shall Cause the post-assertions of reset to hold, and of output, the post-assertions of rewrite to hold, Prior to the first access to the textfile or its associated buffer-variable. The effect of the application of the required procedure reset or the required procedure rewrite to either of these textfiles shall be implementation-defined. 55 SIST EN 27185:1997



ISOhEC 7185:1990(E) Examples: program copy (f, g) ; var f, g : file of real; begin reset (f) ; rewrite (g) ; while not eof (f) do begin gt :- ft; get(f); put(g) end end . program copytext (input I output) ; {This program copies the characters and line structure of the textfile input to the textfile output.} var ch : char; begin while not eof do begin while not eoln do begin read (ch) ; write (ch) end; readln; writeln end end . program t 6p6p3p4 (output) ; var globalone, globaltwo : integer; procedure dummy; begin writeln ( ’ f ai14 ’ ) end { of dummy }; procedure p (procedure f (procedure ff; procedure gg) ; procedure g) ; var localtop : integer; procedure r; begin { r } if globalone - 1 then begin if (globaltwo <> 2) or (localtop o 1) then writeln (I faill’ ) end else if globalone - 2 then begin if (globaltwo o 2) or (localtop o 2) then writeln (’ fail2’ ) else writeln (’ pass’ ) end else writeln (f fail3’ ) ; globalone := globalone + 1 end { of r }; 56 SIST EN 27185:1997



ISOhEC 7185:1990(E) begin { of p } globaltwo :- globaltwo + 1; localtop :- globaltwo; if globaltwo = 1 then pw, r) ehe Hg, r) end { of p}; procedure q (procedure f; procedure g) ; begin f; g end { of q}; begin { of tGp6p3p4 } globalone :- 1; globaltwo :- 0; ph, d-y) end. { of t6p6p3p4 } 57 SIST EN 27185:1997



ISO/IEC7185:1990(E) Annex A (Informative) Collected Syntax The nonterminal Symbols pointer-type, program, signed-number, simple-type, special-Symbol, and structured- type are only referenced by the semantics and are not used in the right-hand-side of any production. The nonterminal Symbol program is the start Symbol of the grammar. 6.7.3 6.7.3 6.7.2.1 6.1.7 6.4.3.2 6.5.3.2 6.8.2.2 6.4.3.4 6.2.1 6.7.2.3 6.6.3.7.1 6.5.5 6.4.3.3 6.4.3.3 6.8.3.5 6.8.3.5 6.8.3.5 6.1.7 6.4.3.2 6.5.3.1 6.8.3.2 6.8.3.3 6.6.3.7.1 58 6er actual-Parameter = expression ] variable-access ] procedure-identij ] function-identifier . actual-parameter-list = ‘ (’ actual-Parameter { ‘ , ’ actual-Parameter adding-Operator = ‘+’ ] ‘-’ ] ‘01’ . apostrophe-image = “” . array-type = ‘array’ ‘[’ index-type { ‘,’ index-type } ‘1’ ‘of’ component-type . array-variable = variable-access . assignment-Statement = ( variable-access ] function-identfier ) ‘:=’ expression . base-type = ordinal-type . block = label-declaration-part constant-definition-part type-definition-part variable-declaration-part procedure-and-function-declaration-part Statement-part . Boolean-expression = expression . bound-identifier = identifier . buffer-variable = file-variable ‘t ’ . case-constant = constant . case-constant-list = case-constant { ‘,’ case-constant } . case-index = expression . case-list-element = case-constant-list ‘:’ Statement . case-Statement = kase’ case-index ‘of’ case-list-element { ‘;’ case-list-element } [ ‘;’ ] ‘end’ . Character-string = “’ string-element { string-element } “’ . component-type = type-denoter . component-variable = indexed-variable 1 field-designator . compound-Statement = ‘begin’ Statement-sequence ‘end’ . conditional-Statement = if-Statement 1 case-Statement . conformant-array-parameter-specification I value-conformant-array-specification variable-conformant-array-specification . SIST EN 27185:1997



ISO/IEC 7185: 1990(E) 6.6.3.7.1 63 . 6.3 6.2.1 63 . 6.8.3.9 6.1.1 6.1.5 6.1.4 6.4.4 6.8.3.4 6.8.2.1 6.5.2 6.4.2.3 6.7.1 6.6.3.7.1 6.7.1 6.5.3.3 6.8.3.10 6.5.3.3 6.4.3.3 6.5.3.3 6.4.3.5 6.5.5 6.8.3.9 6.4.3.3 6.8.3.9 6.6.3.1 conformant-array-Schema = packed-conformant-array-Schema I unpacke&conformant-array-Schema . constant = [ sign ] ( unsigned-number 1 constant-identifier ) ] Character-string . constant-definition = identifier ‘=’ constant . constant-definition-part = [ ‘const’ constant-definition ‘;’ { constant-definition ‘;’ } ] . constant-identifier = identifier . control-variable = entire-variable . digit = ‘0' 1 ‘1’ 1 ‘2’ 1 ‘3’ 1 ‘4’ 1 ‘5' 1 ‘6’ 1 ‘7’ 1 ‘8’ 1 ‘9’ . digit-sequence = digit { digit } . directiie = letter { letter ] digit } . domain-type = type-identifier . else-part = ‘eise’ Statement . empty-Statement = . entire-variable = variable-identifier . enumerated-type = ‘(’ identifier-list ‘) ’ . expression = simple-expression [ relational-Operator simple-expression ] . factor > bound-identifier . factor > variable-access ] unsigned-constant ] function-designator I set-constructor ] ‘(’ expression ‘)’ 1 ‘not’ factor . field-designator = record-variable ‘ . ’ field-specifier ] field-designator-identtier . field-designator-identifier = identifier . field-identifier = identifier . field-list = [ ( fixeQ)m 1 ‘;’ variant-part ] ] variant-part ) [ ‘;’ ] ] . field-specifier = field-identifier . file-type = ‘f ile’ ‘of’ component-type . file-variable = variable-access . final-value = expression . fixed-Part = record-section { ‘;’ record-section } . for-Statement = ‘for’ control-variable ‘:=’ initial-value ( ‘to’ 1 ‘downto’ ) final-value ‘do’ Statement . formal-parameter-list = ‘ (’ formal-parameter-section { ‘;’ formal-parameter-section } ‘)’ . 59 SIST EN 27185:1997



ISO/IEC 7185:1990(E) 6.6.3.1 6.6.3.7.1 6.1.5 6.6.2 6.6.2 6.7.3 6.6.2 6.6.2 6.6.2 6.6.3.1 6.8.2.4 6.5.4 6.1.3 6.4.2.3 6.8.3.4 6.5.3.2 6.4.3.2 6.6.3.7.1 6.5.3.2 6.8.3.9 6.1.6 6.2.1 6.1.1 6.7.1 6.7.2.1 6.4.2.1 6.4.4 6.4.3.1 60 formal-parameter-section > value-parameter-specification I variable-parameter-specification ] procedural-parameter-specification ] functional-parameter-specification . formal-parameter-section > conformantarray-parameter-specification . fractional-part = digit-sequence . function-block = block . function-declaration = function-heading ‘;’ directive ] function-identification ‘ ;’ function-block ] function-heading ‘;’ function-block . function-designator = function-identifier [ actual-parameter-list ] . function-heading = ‘function’ identifier [ formal-parameter-list ] ‘:’ result-type . function-identication = ‘function’ function-identtier . function-identier = identifier . functional-parameter-specification = function-heading . goto-Statement = ‘goto’ label . identified-variable = pointer-variable ‘t ’ . identifier = letter { letter ] digit } . identifier-list = identifier { ‘,’ identifier } . if-Statement = ‘if’ Boolean-expression ‘then’ Statement [ else-part ] . index-expression = expression . index-type = ordinal-type . index-type-specification = identifier ‘.’ identif
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.