Browse Source

SVI Исправления

SVI 2 years ago
parent
commit
a9872ab837
1 changed files with 33 additions and 29 deletions
  1. 33 29
      README.md

+ 33 - 29
README.md

@@ -959,6 +959,7 @@ w[i+1].ch = "A"
 Следующие определения обычно применимы без дополнительных изменений. Однако отдельные реализации языка могут включать в свои модули дополнительные определения `СИСТЕМА`, которые относятся к конкретной, находящейся в использовании аппаратуре. В дальнейшем `v` обозначает переменную, `x`, `a` и `n` для выражений.
 
 Функции-процедуры:
+
 | Имя       | Тип аргумента | Тип результата | Функция            |
 | --------- | ------------- | -------------- | ------------------ |
 | ADR(v)    | любой         | `целое`        | адрес переменной v |
@@ -966,6 +967,7 @@ w[i+1].ch = "A"
 | BIT(a, n) | a, n: `целое` | BOOLEAN        | n бит в mem[a]     |
 
 Собственные процедуры:
+
 | Имя               | Тип аргумента | Тип результата       | Функция                                          |
 | ----------------- | ------------- | -------------------- | ------------------------------------------------ |
 | GET(a, v)         | a: `целое`    | v: любой базовый тип | v := mem[a]                                      |
@@ -975,6 +977,7 @@ w[i+1].ch = "A"
 Ниже приводятся дополнительные процедуры, принятые компилятором для RISC-процессора:
 
 Процедуры-функции:
+
 | Имя       | Тип аргумента | Тип результата | Функция                       |
 | --------- | ------------- | -------------- | ----------------------------- |
 | VAL(T, n) | скалярный     | T              | преобразование                |
@@ -984,6 +987,7 @@ w[i+1].ch = "A"
 | COND(n)   | `целое`       | BOOLEAN        | IF Cond(n) THEN ...           |
 
 Собственные процедуры:
+
 | Имя    | Тип аргумента | Функция                    |
 | ------ | ------------- | -------------------------- |
 | LED(n) | `целое`       | отображает n на LED-экране |
@@ -991,58 +995,58 @@ w[i+1].ch = "A"
 ## Приложение 1: Синтаксис Оберона
 
 ```bash
-литера 	= "A" | "B" | … | "Z" | "a" | "b" | … | "z".
-цифра 	= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9".
+литера = "A" | "B" | … | "Z" | "a" | "b" | … | "z".
+цифра  "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9".
 шестнЦифра = digit | "A" | "B" | "C" | "D" | "E" | "F".
-имя 		= литера {литера | цифра}.
+имя = литера {литера | цифра}.
 квалификатор = [имя "."] имя.
-ОпрИмени	= имя ["*"].
-целое 	= цифра {цифра} | цифра {шестнЦифра} "H".
+ОпрИмени = имя ["*"].
+целое = цифра {цифра} | цифра {шестнЦифра} "H".
 вещественное = цифра{цифра} "." {цифра} [экспонента].
-экспонента	= "E" ["+" | "-"] цифра{цифра}.
-число 	= целое | вещественное.
-строка 	= """ {литера} """ | цифра {шестнЦифра } "X".
+экспонента = "E" ["+" | "-"] цифра{цифра}.
+число = целое | вещественное.
+строка = """ {литера} """ | цифра {шестнЦифра } "X".
 ОпрКонстанты = ОпрКонстанты "=" КонстВыражение.
 КонстВыражение = выражение.
-ОпрТипа 	= ОпрИмени "=" тип.
-тип 		= квалификатор| ТипМассива | ТипЗаписи | ТипСсылка | ТипПроцедуры.
+ОпрТипа = ОпрИмени "=" тип.
+тип = квалификатор| ТипМассива | ТипЗаписи | ТипСсылка | ТипПроцедуры.
 ТипМассива = массив длина {"," длина} OF тип.
-длина 	= КонстВыражение .
-ТипЗаписи 	= RECORD ["(" БазовыйТип ")"] [ПоследСписокПолей] END.
+длина = КонстВыражение .
+ТипЗаписи = RECORD ["(" БазовыйТип ")"] [ПоследСписокПолей] END.
 БазовыйТип = квалификатор.
 ПоследСписокПолей = СписокПолей {";" СписокПолей }.
 СписокПолей = СписокИмён ":" тип.
-СписокИмён 	= ОпрИмени{"," ОпрИмени}.
+СписокИмён = ОпрИмени{"," ОпрИмени}.
 ТипСсылка = POINTER TO тип.
 ТипПроцедуры = PROCEDURE [ФормальныеПараметры].
 ОпрПеременных = СписокИмён ":" тип.
-выражение 	= ОперацияПростая [ОперацияОтношение ОперацияПростая ].
-ОперацияОтношение	= "=" | "#" | "<" | "<=" | ">" | ">=" | IN | IS.
+выражение = ОперацияПростая [ОперацияОтношение ОперацияПростая ].
+ОперацияОтношение = "=" | "#" | "<" | "<=" | ">" | ">=" | IN | IS.
 ОперацияПростая = ["+" | "-"] разделитель {ОперАддикции разделитель }.
 ОперАддикции = "+" | "-" | OR.
-разделитель 	= множитель {ОперМультипликации множитель}.
+разделитель = множитель {ОперМультипликации множитель}.
 ОперМультипликации = "*" | "/" | DIV | MOD | "&".
-множитель 	= число | строка | NIL | TRUE | FALSE | set | ссылка [АктуальныеПараметры] | "(" выражение")" | "~" множитель.
-ссылка	= квалификатор {селектор}.
-селектор 	= "." имя| "[" СписокВыражений"]" | "^" | "(" квалификатор")".
-набор 	= "{" [элемент {"," элемент}] "}".
-элемент 	= выражение [".." выражение ].
-СписокВыражений 	= выражение {"," выражение }.
+множитель = число | строка | NIL | TRUE | FALSE | set | ссылка [АктуальныеПараметры] | "(" выражение")" | "~" множитель.
+ссылка = квалификатор {селектор}.
+селектор = "." имя| "[" СписокВыражений"]" | "^" | "(" квалификатор")".
+набор = "{" [элемент {"," элемент}] "}".
+элемент = выражение [".." выражение ].
+СписокВыражений = выражение {"," выражение }.
 АктуальныеПараметры = "(" [СписокВыражений ] ")" .
-предписание 	= [присвоение | ВызовПроцедуры| Предписание_If | Предписание_Case |
+предписание = [присвоение | ВызовПроцедуры| Предписание_If | Предписание_Case |
 Предписание_While| Предписание_Repeat | Предписание_For].
 
-присвоение 	= ссылка ":=" выражение.
+присвоение = ссылка ":=" выражение.
 ВызовПроцедуры = ссылка [АктуальныеПараметры].
 ПоследПредписаний = предписание {";" предписание }.
 Предписание_If = IF выражение THEN ПоследПредписаний
 {ELSIF выражение THEN ПоследПредписаний }
 [ELSE ПоследПредписаний ] END.
 Предписание_Case = CASE выражение OF вариант {"|" вариант } END.
-вариант 	= [СписокМеток_Case ":" ПоследПредписаний ].
+вариант = [СписокМеток_Case ":" ПоследПредписаний ].
 СписокМеток_Case = СписокМеток {"," СписокМеток }.
 СписокМеток = метка [".." метка ].
-метка 		= целое | строка | квалификатор .
+метка = целое | строка | квалификатор .
 Предписание_While = WHILE выражение DO ПоследПредписаний
 {ELSIF выражение DO ПоследПредписаний } END.
 Предписание_Repeat = REPEAT ПоследПредписаний UNTIL выражение .
@@ -1061,14 +1065,14 @@ DO ПоследПредписаний END.
 [симв {ОпрПеременной ";"}]
 {ОпрПроцедуры ";"}.
 ФормальныеПараметры = "(" [Секция_FP {";" Секция_FP}] ")" [":" квалификатор].
-Секция_FP 	= [симв] имя {"," имя } ":" ФормальныйТип.
+Секция_FP = [симв] имя {"," имя } ":" ФормальныйТип.
 ФормальныйТип = {массив OF} квалификатор.
 
-модуль	= MODULE имя ";" [СписокИмпорта] ПоследОпределений
+модуль = MODULE имя ";" [СписокИмпорта] ПоследОпределений
 [BEGIN ПоследПредписаний ] END имя "."
 
 СписокИмпорта = IMPORT импорт {"," импорт } ";".
-импорт 	= имя [":=" имя].
+импорт = имя [":=" имя].
 ```
 
 ## Приложение 2: Участники