LINUX.ORG.RU

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

Исправление SZT, (текущая версия) :

Ну так давай.

Может быть завтра, если мне не будет лень. Но Ragel тут явно оверкилл.

Т.е. ты утверждаешь, что трудозатраты на написание ksy для GIF и парсера GIF на Си одинаковы? Без уверток, «да» или «нет».

Если сравнивать те неполные реализации (моя реализация парсера на Си настолько же неполная, как и реализация на ksy, я фактически вручную перевел этот ksy в Си код) то ksy позволяет писать это немного легче. Но меня в ksy например сильно напрягает отсутствие битовых полей, и что нужно делать всякие битовые маски и сдвиги.

Однако, давайте рассмотрим такой сценарий:

  struct
  {
    uint16_t some_number1;
    uint1_t somedata[4*8]; // пока что мы не знаем, что тут за данные

    uint16_t some_number2;

    uint1_t bit :
     if (bit == 0) // А вот теперь знаем
     {
       somedata := uint16_t data[2];
     }
     else
     {
       somedata := uint32_t data;
     }
     
  } somestruct;
KS на данном этапе своего развития может с этим справиться?

И к слову

Окей, ты блестяще доказал, что на Си можно написать парсер GIF.

Я не ставил целью что-либо доказать или показать свои навыки программирования на Си. Скорее мне было интересно понять, что именно мешает создать в KS компилятор в Си. Как я убедился сам - ничего не мешает. Может быть этот код будет полезен в качестве примера, чтобы GreyCat реализовал компилятор в Си по такий же схеме, что и написанный мной код.

Исходная версия SZT, :

Ну так давай.

Может быть завтра, если мне не будет лень. Но Ragel тут явно оверкилл.

Т.е. ты утверждаешь, что трудозатраты на написание ksy для GIF и парсера GIF на Си одинаковы? Без уверток, «да» или «нет».

Если сравнивать те неполные реализации (моя реализация парсера на Си настолько же неполная, как и реализация на ksy, я фактически вручную перевел этот ksy в Си код) то ksy позволяет писать это немного легче. Но меня в ksy например сильно напрягает отсутствие битовых полей, и что нужно делать всякие битовые маски и сдвиги.

Однако, давайте рассмотрим такой сценарий:

  struct
  {
    uint16_t some_number1;
    uint1_t somedata[4*8]; // пока что мы не знаем, что тут за данные

    uint16_t some_number2;

    uint1_t bit :
     if (bit == 0) // А вот теперь знаем
     {
       somedata := uint16_t data[2];
     }
     else
     {
       somedata := uint32_t data;
     }
     
  } somestruct;

KS на данном этапе своего развития может с этим справиться?

И к слову
> Окей, ты блестяще доказал, что на Си можно написать парсер GIF.
Я не ставил целью что-либо доказать или показать свои навыки программирования на Си. Скорее мне было интересно понять, что именно мешает создать в KS компилятор в Си. Как я убедился сам - ничего не мешает. Может быть этот код будет полезен в качестве примера, чтобы [user]GreyCat[/user] реализовал компилятор в Си по такий же схеме, что и написанный мной код.