OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 29 Март, 2024 02:10

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
СообщениеДобавлено: Понедельник, 14 Октябрь, 2019 17:51 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Часто приходится генерить заголовки в Lin?

В Lin лежат "скрипты" для генерации интерфейсных модулей. Интересуют два вопроса. Часто с их помощью перегенирируются модули? Какие причины побудили генератор делать не на ББ?
Код:
bbcp/Lin/Mod

Каталоги
attic
gen-Ioctl
gen-Libc
gen-LibW
gen-Net
gen-Termios

Файлы
Dl.odc
Dl.txt
Iconv.odc
Iconv.txt
Ioctl.txt
Libc.txt
LibW.txt
Net.txt
Rt.txt
Termios.txt


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 15 Октябрь, 2019 20:31 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Для GNU/Linux - нечасто. Там вообще почти ничего не менятся.
Для OpenBSD - часто.

Генераторы проще всего было писать на С, т. к. не нужно парсить заголовочные файлы, а они все на C.
Часть написана на Python - так было проще сделать. Можно переписать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 15 Октябрь, 2019 21:04 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Alexander Shiryaev писал(а):
Можно переписать.
Надо переписать ))


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Октябрь, 2019 15:44 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Alexander Shiryaev писал(а):
Генераторы проще всего было писать на С, т. к. не нужно парсить заголовочные файлы, а они все на C.
Парсить, на мой взгляд, проще не заголовочные файлы, а освобожденную от макросов и условной компиляции выдачу препроцессора.

Код:
$ cat mkioctl.cpp
#include <sys/ioctl.h>

CONST
    _FIOCLEX = FIOCLEX;
    _FIONCLEX = FIONCLEX;

Код:
$ cpp mkioctl.cpp
...
# 27 "/usr/include/x86_64-linux-gnu/bits/ioctl-types.h" 3 4
struct winsize
  {
    unsigned short int ws_row;
    unsigned short int ws_col;
    unsigned short int ws_xpixel;
    unsigned short int ws_ypixel;
  };


struct termio
  {
    unsigned short int c_iflag;
    unsigned short int c_oflag;
    unsigned short int c_cflag;
    unsigned short int c_lflag;
    unsigned char c_line;
    unsigned char c_cc[8];
};
# 30 "/usr/include/x86_64-linux-gnu/sys/ioctl.h" 2 3 4
...
extern int ioctl (int __fd, unsigned long int __request, ...) throw ();

}
# 2 "mkioctl.cpp" 2


# 3 "mkioctl.cpp"
CONST
    _FIOCLEX =
# 4 "mkioctl.cpp" 3 4
              0x5451
# 4 "mkioctl.cpp"
                     ;
    _FIONCLEX =
# 5 "mkioctl.cpp" 3 4
               0x5450
# 5 "mkioctl.cpp"
                       ;


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Октябрь, 2019 21:26 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Да, так и надо будет сделать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 11 Февраль, 2020 23:31 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Генератор теперь создает odc файлы вместо текстовых. Спасибо Александру!
Если кому-то нужен пример создания odc из Питона, можете обратиться в исходным кодам этих генераторов.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB