Страница 2 из 2
Re: Cинтаксический анализ конфигурационных файлов Asterisk
Добавлено: 15 мар 2013, 15:28
viman
vim и far + colorer , больше ничего не нужно
буфер, подсветка синтаксиса, кодировки и т.д.
Re: Cинтаксический анализ конфигурационных файлов Asterisk
Добавлено: 15 мар 2013, 16:52
kasper
На мой взгляд на сях такое сделать проще. Тупо повырезать кусочки проверок из модулей. Код парсера конфигов не смотрел, но думаю его тоже можно было бы использовать с небольшими изменениями. По крайней мере можно быть уверенным, что оно действительно посчитает ошибкой тоже самое, что и сам астериск.
Re: Cинтаксический анализ конфигурационных файлов Asterisk
Добавлено: 15 мар 2013, 23:32
noize
Оно может и проще, но с Си я пока что на "Вы". Так что имеем то, что имеем
Re: Cинтаксический анализ конфигурационных файлов Asterisk
Добавлено: 16 мар 2013, 03:13
tma
kasper писал(а):На мой взгляд на сях такое сделать проще.
На C++, perl. Но не Си. Си для парсера не подходит.
Re: Cинтаксический анализ конфигурационных файлов Asterisk
Добавлено: 16 мар 2013, 12:44
tma
switch, скорее занятный вопрос. Я не сказал, что невозможно, я написал "не подходит".
asterisk для этих целей использует bison/yacc, который создает нужный исходник на C.
Можешь пописать парсер на plain C... Успехов.
Ты бы еще на ассемблере парсер написал, что ж мелочиться.
Re: Cинтаксический анализ конфигурационных файлов Asterisk
Добавлено: 16 мар 2013, 17:04
kasper
tma писал(а):Писать такое На C++, perl. Но не Си. Си для парсера не подходит.
tma, парсер можно писать на чём угодно, я высказал идею использовать готовые куски, которые написаны не на с++ и не на перле а на си.
На первый взгляд взять ast_expr2.c (используется bison) и ф-ю static int pbx_load_config(const char *config_file) из pbx_config.c. Да, придётся заменить или добавить несколько специфичных астериск ф-й для работы со строками и вот готовый парсер, но по мне так это гораздо проще чем писать парсер с 0 а потом вылавливать тучу несоответствий когда парсер говорит что всё ок а астериск ругается. Плюс если что нить поменяется в обработке выражений, придётся всего лишь заново скопировать ast_expr2.c.
З.Ы. И кстати с учётом использования переменных, часть кода возможно будет норм проверить только на этапе выполнения! Увы.