![]() |
Модераторы: Snowy, Poseidon |
![]() ![]() ![]() |
|
TheVoid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 18.6.2009 Репутация: нет Всего: нет |
Руководствуюсь, в основном, K&R, хотя на полке пылится Шилдт со своим "Полным описанием С" (С99). Да нет, конечно, мне не претят новые веяния, обновленные стандарты и прочее, только хочу сейчас сосредоточиться на базовых вещах, я ведь учусь в первую очередь.
Это сообщение отредактировал(а) TheVoid - 20.9.2009, 11:42 |
|||
|
||||
DEADHUNT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.11.2008 Репутация: нет Всего: нет |
я имел ввиду в электронном виде, C99 вообще-то здесь находится http://www.open-std.org/JTC1/SC22/WG14/ Это сообщение отредактировал(а) DEADHUNT - 20.9.2009, 00:02 |
|||
|
||||
TheVoid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 18.6.2009 Репутация: нет Всего: нет |
DEADHUNT, пожалуйста, расскажите о семантических правилах - что это и куда привинчивается, желательно с абстрактным примером.
Книга-книгой, но а вдруг я что-то понял неправильно. Это сообщение отредактировал(а) TheVoid - 20.9.2009, 11:44 |
|||
|
||||
DEADHUNT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.11.2008 Репутация: нет Всего: нет |
приведи пример, в документации к yacc всё описано(много разных тонкостей).
|
|||
|
||||
TheVoid |
|
||||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 18.6.2009 Репутация: нет Всего: нет |
Yacc-ом я не пользуюсь, все вручную.
По грамматике строится нисходящий синтаксический анализатор, народе
Хм... в общем-то я и не представляю, что делать дальше ![]() Это сообщение отредактировал(а) TheVoid - 20.9.2009, 12:59 |
||||
|
|||||
DEADHUNT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.11.2008 Репутация: нет Всего: нет |
тогда ты наверное год будешь LR списки высчитывать(чтобы таблицы Action, Goto затем построить), потом где нибудь ошибёшься, ну и дальнейшее расширение станет не возможным(надо будет поновой таблицу строить, оптимизировать, ...), ну и самое главное не выйдет у тебя анализатор. вроде с умом начинал препроцессор делать, а теперь.... Добавлено через 1 минуту и 48 секунд значит рекурсивный спуск(без использования LL/LR/... анализаторов), зачем только тогда грамматику составлять? |
|||
|
||||
TheVoid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 18.6.2009 Репутация: нет Всего: нет |
Возможно, я чего-то не понял, но... В смысле - зачем? Для рекурсивного нисходящего парсера нужны правила, по которым будут строится "парсящие процедуры", по терминологии Википедии. Я смотрю на правила и по ним пишу соответствующие функции. |
|||
|
||||
DEADHUNT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.11.2008 Репутация: нет Всего: нет |
||||
|
||||
TheVoid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 18.6.2009 Репутация: нет Всего: нет |
||||
|
||||
DEADHUNT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.11.2008 Репутация: нет Всего: нет |
||||
|
||||
TheVoid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 18.6.2009 Репутация: нет Всего: нет |
Итак, по упрощенной грамматике написал синтаксический анализатор. Текущее состояния сего чуда инженерной мысли - допуск /отказ входного файла. Причем, анализ поверхностный: имена переменных не вносятся в таблицу символов, соответственно, не проверяется, были ли они объявлены ранее или нет.
Меня интересует следующие: как прикрутить семантический анализ? Вот, кое-что из исходного кода, посмотрите и скажите, насколько он плох:
|
|||
|
||||
DEADHUNT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.11.2008 Репутация: нет Всего: нет |
у тебя даже нигде не идёт распознание типов(type specifier), так-что тебе и проверять нечего. |
|||
|
||||
TheVoid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 18.6.2009 Репутация: нет Всего: нет |
Чего-чего? Это к синтаксическому анализу вообще относится или к чему?
|
|||
|
||||
DEADHUNT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.11.2008 Репутация: нет Всего: нет |
||||
|
||||
TheVoid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 18.6.2009 Репутация: нет Всего: нет |
Понятно.
Короче говоря, вопрос решен, всем спасибо, все свободны. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Совместные проекты/поиск партнёров" | |
|
Внимание: Этот раздел только для проектов в которых Вы будете выступать в качестве исполнителя! Темы и сообщения, не удовлетворяющие данным правилам, будут удаляться на основании пункта 3 Правил форума!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, Poseidon |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Совместные проекты/поиск партнёров | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |