История изменений
Исправление 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;
И к слову
Окей, ты блестяще доказал, что на Си можно написать парсер 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] реализовал компилятор в Си по такий же схеме, что и написанный мной код.