Синтаксис бестипового учебного концентра языка Pascal3
БНФ
|
Пояснение
|
ident = letter {letter | digit}
|
Идентификатор
|
integer = digit {digit}
|
Целое
|
factor = ident | integer | "(" expression ")". expression = factor
[("=" | "<" | "+"|"-" | "*" | "DIV" ) factor
|
Выражение:
= < – Отношения между числами
+ - * DIV – Операции над числами
|
statement = [assignment | ProcedureCall
| IfStatement | WhileStatement]
|
Оператор
|
assignment = ident ":=" expression
|
Присваивание
|
StatementSequence = statement
{";" statement}
|
Последовательность исполнения
|
3 Понятие «тип данных» будет привлечено позднее.
|
команд
|
IfStatement = "IF" expression "THEN" StatementSequence
["ELSE" StatementSequence] "END"
|
Ветвление
|
WhileStatement = "WHILE" expression
"DO" StatementSequence "END"
|
Цикл
|
IdentList = ident {"," ident}. FormalParameters = "(" [IdentList {";" =
["VAR"] IdentList }] ")".
ProcedureHeading = "PROCEDURE" ident
[FormalParameters].
ProcedureBody = declarations
["BEGIN" StatementSequence] "END" ident.
ProcedureDeclaration = ProcedureHeading
";" ProcedureBody. declarations = ["CONST"
{ident "=" expression ";"}]
["VAR" {IdentList;"}]
|
Определение функции
|
ActualParameters = "(" [expression
{"," expression}] ")"
.
ProcedureCall = ident [ActualParameters]
|
Вызов функции
|
module = "MODULE" ident ";" declarations
["BEGIN" StatementSequence] "END" ident "."
|
|
Ряд ЯП представляет программы непосредственно как структуры данных, используемые при представлении и выполнении программы. В таком случае синтаксис выглядит проще. Используется его конкретизация для семантической сопоставимости с другими ЯП.
Т а б л и ц а 3
Do'stlaringiz bilan baham: |