LINUX.ORG.RU

История изменений

Исправление 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
           _з конс:робратить тОбъ_классаПоле.ДрАтрибуты
           вернуть_из рОбъ_классаПолеАтрибутыИКонец да
         кн)
      )
    кн/*разбор_списка_атр*/   
  кн //если_только
рОбъ_классаПолеАтрибутыИКонец/
// я вчера писал о двух закрывающих слешах, но можно и один разрешить