Здравствуйте, Azarov88.
Структура синтаксиса функции практически полностью повторяет структуру программы, за исключение нескольких разделов.
Синтаксис определен с помощью
Расширенной Формы Бэкуса-Наура:
Синтаксические конструкции в фигурных скобках повторяются ноль и более раз. Необязательные элементы находятся в квадратных скобках.
<функция>::=<заголовок функции>
[<разделы функции>
]<тело функции>
<заголовок функции>::=
function <идентификатор функции>
[ <переменные функции>
] [i]:[/i] <тип>
[i]; [/i]<идентификатор функции>::=<буква>
{ <буква> | <цифра>
}<буква>::='A' .. 'Z' , 'a' .. 'z'
<цифра>::=0 .. 9
<переменные функции>::=
( <переменная типа>
{ <переменная типа>
} )<переменная типа>::=<идентификатор переменной>
[i]:[/i]<тип>
; | <идентификатор переменной>
[i],[/i] <переменная типа>
<идентификатор переменной>::=<буква>
{ <буква> | <цифра>
}<тип>::=
integer |
real<разделы функции>::=
{ <раздел меток> | <раздел констант> | <раздел типов> | <раздел переменных> | <раздел описания внутренних функций> | <раздел описания внутренних процедур>
}Из разделов определяем только константы и переменные:
<раздел констант>::=
const <константа>
{ <константа>
}<константа>::= <идентификатор константы>
[b]=[/b] <цифра>
{ <цифра>
}; | <цифра>
{ <цифра>
} [i].[/i] <цифра>
{ <цифра>
} ;<идентификатор константы>::=<буква>
{ <буква> | <цифра>
}<раздел переменных>::=
var <переменная типа>
{ <переменная типа>
}<тело функции>::=
begin <оператор>
; { <оператор>
; }end;<оператор>::= Присваивание (:=) | Begin..End | Case..Of..Else..End | For..To/Downto..Do |
Goto | If..Then..Else | InLine(...) | Вызов процедуры | Repeat..Until | While..Do | With..Do
Из операторов определяем только присваивание:
<левая часть>
[b] := [/b]<выражение>
<выражение> ::= <операнд>
{ <операция суммирования> <операнд>
}<операнд>::= <множитель>
{ <операция умножения> <множитель>
}<множитель>::= <идетификатор константы> | <идентификатор переменной> |
( <выражение>
)<операция умножения>::=
* |
/<операция суммирования>::=
+ |
-Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.