Информация об изменениях

Сообщение Re[3]: [Nemerle] Codegen quality от 02.03.2017 18:20

Изменено 02.03.2017 18:52 VladD2

Re[3]: [Nemerle] Codegen quality
Здравствуйте, rameel, Вы писали:

R>Как побороть ошибку FSM\DFSMTransform.n(198,9,229,10): error : Label 'Next' (12583) multiply defined ? Пытался по всякому, не работает.


Косяк в label-макре. Очень уж редко это дело используется. По сути всего один раз использовали в Нитре. Они там по именам в хэш-таблицу загоняются.

Вот так должно помочь:
    <[
      $init;

      ($("_N_break" : global) :
      {
        goto $(startLabelName : usesite);

      label $(nextLabelName : usesite);
        ($("_N_continue" : global) :
        {
          $body
        }) : void;

        $change;

      label $(startLabelName : usesite);
        when ($cond)
          goto $(nextLabelName : usesite);
      }) : void
    ]>


Т.е. вручную сгенерировать уникальные имена для лэйблов.

R>PS. Кстати, а что случилось со статьями? Все листинги в статьях по немерле (остальные статьи не смотрел) слиплись в одну нечитаемую кашу


Я вижу, что первый отступ улетает. А так вроде читабельно
Автор(ы): Чистяков Владислав Юрьевич
Дата: 20.02.2012
Данная часть посвящена синтаксису Nemerle.
.
Re[3]: [Nemerle] Codegen quality
Здравствуйте, rameel, Вы писали:

R>Как побороть ошибку FSM\DFSMTransform.n(198,9,229,10): error : Label 'Next' (12583) multiply defined ? Пытался по всякому, не работает.


Косяк в label-макре. Очень уж редко это дело используется. По сути всего один раз использовали в Нитре. Они там по именам в хэш-таблицу загоняются.

Вот так должно помочь:
    def startLabelName = Util.tmpname("StartLabel");
    def nextLabelName  = Util.tmpname("NextLabel");

    <[
      $init;

      ($("_N_break" : global) :
      {
        goto $(startLabelName : usesite);

      label $(nextLabelName : usesite);
        ($("_N_continue" : global) :
        {
          $body
        }) : void;

        $change;

      label $(startLabelName : usesite);
        when ($cond)
          goto $(nextLabelName : usesite);
      }) : void
    ]>


Т.е. вручную сгенерировать уникальные имена для лэйблов.

R>PS. Кстати, а что случилось со статьями? Все листинги в статьях по немерле (остальные статьи не смотрел) слиплись в одну нечитаемую кашу


Я вижу, что первый отступ улетает. А так вроде читабельно
Автор(ы): Чистяков Владислав Юрьевич
Дата: 20.02.2012
Данная часть посвящена синтаксису Nemerle.
.