Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
STANDART PASCAL ISO 1990.doc
Скачиваний:
5
Добавлен:
17.11.2019
Размер:
251.66 Кб
Скачать

6.7.3 Function-designators

A function-designator shall specify the activation of the block of the function-block associated with the function-identifier of the function-designator and shall yield the value of the result of the activation upon completion of the algorithm of the activation; it shall be an error if the result is undefined upon completion of the algorithm.

NOTE --- When a function activation is terminated by a goto-statement (see 6.8.2.4), the algorithm of the activation does not complete (see 6.2.3.2 a)), and thus there is no error if the result of the activation is undefined.

If the function has any formal-parameters, there shall be an actual parameter-list in the function-designator. The actual-parameter-list shall be the list of actual-parameters that shall be bound to their corresponding shall be established by the positions of the parameters in the lists of actual-parameters and formal-parameters respectively. The number of actual-parameters shall be equal to the number of formal-parameters. The types of the actual-parameters shall correspond to the types of the formal-parameters as specified by 6.6.3. The order of evaluation, accessing, and binding of the actual-parameters shall be implementation-dependent.

function-designator = function-identifier [ actual-parameter-list ] .

actual-parameter-list = '(' actual-parameter { ',' actual-parameter } ')' .

actual-parameter = expression ½ variable-access ½ procedure-identifier ½ function-identifier .

Examples:

Sum(a, 63)

GCD(147, k)

sin(x + y)

eof(f)

ord(f­)

6.8 Statements

6.8.1 General

Statements shall denote algorithmic actions and shall be executable.

NOTE --- 1 A statement may be prefixed by a label.

A label, if any, of a statement S shall be designated as prefixing S. The label shall be permitted to occur in a goto-statement G (see 6.8.2.4) if and only if any of the following three conditions is satisfied.

a) S contains G.

b) S is a statement of a statement-sequence containing G.

c) S is a statement of the statement-sequence of the compound-statement of the statement-part of a block containing G.

statement = [ label ':' ] ( simple-statement ½ structured-statement ) .

NOTE --- 2 A goto-statement within a block may refer to a label in an enclosing block, provided that the label prefixes a statement at the outermost level of nesting of the block.

6.8.2 Simple-statements

6.8.2.1 General

A simple-statement shall be a statement not containing a statement. An empty-statement shall contain no symbol and shall denote no action.

simple-statement = empty-statement ½ assignment-statement ½ procedure-statement ½ goto-statement .

empty-statement = .

6.8.2.2 Assignment-statements

An assignment-statement shall attribute the value of the expression of the assignment-statement either to the variable denoted by the variable-access of the assignment-statement or to the activation result that is denoted by the function-identifier of the assignment-statement; the value shall be assignment-compatible with the type possessed, respectively, by the variable or by the activation result. The function-block associated (see 6.6.2) with the function-identifier of an assignment-statement shall contain the assignment-statement.

assignment-statement = ( variable-access ½ function-identifier ) ':=' expression .

The variable-access shall establish a reference to the variable during the execution of the assignment-statement. The order of establishing the reference to the variable and evaluating the expression shall be implementation-dependent.

The state of a variable or activation result when the variable or activation result does not have attributed to it a value specified by its type shall be designated undefined. If a variable possesses a structured-type, the state of the variable when every component of the variable is totally-undefined shall be designated totally-undefined. Totally-undefined shall be synonymous with undefined for an activation result or a variable that does not possess a structured-type.

Examples:

x := y + z

p := (1 <= i) and (i < 100)

i := sqr(k) - (i * j)

hue1 := [blue, succ(c)]

p1­.mother := true

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]