История изменений
Исправление den73, (текущая версия) :
Пример кода на ночь, чтоб лучше спалось. Это я слёту пытаюсь перевести кусок транслятора Яра на Яр.
фун рОбъ_классаПолеАтрибутыИКонец (тОбъ_классаПоле - Объ_классаПоле)
// в лиспе это было
// (defmacro with-must ((format &rest args) &body body)
С_Обяз(
"Ошибка при разборе доп. атрибутов поля %C"
// опираемся на круглые скобки для продолжения списка аргументов
,тОбъ_классаПоле.Имя.Текст)
// это when, а как лучше перевести? Только не "когда", это маразм
если_только хватьЕслиКл(символ(","),тОбъ_классаПоле.Зпт) то
цикл_навсегда/*разбор_списка_атр*/ // loop
пусть Атрибут - Объ_классаПолеАтрибут = рОбъ_клссаПолеАтрибут(тОбъ_классаПоле)
Обяз ( //сейчас будет немеряно длинное булево выражение
хватьЕслиКл(символ(","),Атрибут.Конец)
или
(хватьЕслиКл(символ(";"),тОбъ_классаПоле.Конец)
и
состопп //progn
_з конс:робратить тОбъ_классаПоле.ДрАтрибуты
вернуть_из рОбъ_классаПолеАтрибутыИКонец да
кн)
)
кн/*разбор_списка_атр*/
кн //если_только
рОбъ_классаПолеАтрибутыИКонец/
// я вчера писал о двух закрывающих слешах, но можно и один разрешить
Исходная версия den73, :
Пример кода на ночь, чтоб лучше спалось. Это я слёту пытаюсь перевести кусок транслятора Яра на Яр.
фун рОбъ_классаПолеАтрибутыИКонец (тОбъ_классаПоле - Объ_классаПоле)
// в лиспе это было
// (defmacro with-must ((format &rest args) &body body)
С_Обяз(
"Ошибка при разборе доп. атрибутов поля %C"
// опираемся на круглые скобки для продолжения списка аргументов
,тОбъ_классаПоле.Имя.Текст)
// это when, а как лучше перевести? Только не "когда", это маразм
если_только хватьЕслиКл(символ(","),тОбъ_классаПоле.Зпт) то
цикл_навсегда/*разбор_списка_атр*/ // loop
пусть Атрибут - Объ_классаПолеАтрибут = рОбъ_клссаПолеАтриу тОбъ_классаПоле
Обяз ( //сейчас будет немеряно длинное булево выражение
хватьЕслиКл(символ(","),Атрибут.Конец)
или
(хватьЕслиКл(символ(";"),тОбъ_классаПоле.Конец)
и
состопп //progn
_з конс:робратить тОбъ_классаПоле.ДрАтрибуты
вернуть_из рОбъ_классаПолеАтрибутыИКонец да
кн)
)
кн/*разбор_списка_атр*/
кн //если_только
рОбъ_классаПолеАтрибутыИКонец/
// я вчера писал о двух закрывающих слешах, но можно и один разрешить