Program:
DeclarationList
DeclarationList:
eof
Declaration DeclarationList
Declaration:
extern Name Type
global Name Definition
local Name Definition
Definition:
Definition2
const Definition2
SubProgramType { StatementList
Definition2:
DataType { ExpressionBracesClose
Type:
DataType
const DataType
SubProgramType
SubProgramType:
( ArgumentList ReturnType
ArgumentList:
)
Argument ArgumentList2
ArgumentList2:
)
, ArgumentList
Argument:
Argument2
Name Argument2
Argument2:
DataType
const DataType
ReturnType:
void
DataType
DataType:
log8
char8
nat8
nat16
nat32
nat64
int8
int16
int32
int64
real32
real64
Программная единица (файл) состоит из последовательности объявлений, возможно пустой.
Объявление может быть глобальным, локальным и внешним.
В первых двух случаях объявление также является определением и в этом месте создаётся объект.
Глобальность означает, что видимость распространяется на все файлы, а локальность - только на текущий файл.
Внешнее объявление означает, что объект создаётся в другом месте.
Объявлять можно данные и подпрограммы.
Объявление данных состоит из имени объекта, возможного служебного слова const, типа данных и возможного
блока инициализации.
Служебное слово const относится к имени объекта, а не к типу.
Т.е. существуют постоянные и переменные данные, а не типы.
Если объявление является определением, то у него должен быть блок инициализации данных.
Объявление подпрограммы состоит из имени, типа и, в случае определения, программного блока.
Тип подпрограммы начинается с круглой скобки, возможного списка параметров, закрывающей скобки и
возвращаемого типа данных.
Наверх