Домашнее задание: напишите простой парсер кода С на С
-
Recent Posts
Wish List
Tags
- android
- Bike maintenance
- cacheCopy
- car
- cats
- internet
- linux
- littlebro
- Lucy
- open-source
- Proxima
- sql
- UK
- update
- Абердин
- Братец
- Велик
- Воронеж
- Дом
- Екб
- Ивар
- Казахстан
- Лаптопы
- Лето
- Осень
- Отдых
- Планы
- Работа
- Рассвет
- Ремонты
- Учеба
- Фото
- Шотландия
- Эдинбург
- вождение
- зима
- история
- мну
- ночь
- погода
- программерское
- семейство
- спорт
- универ
- фразы
Links
Хорошее задание. Под парсером понимается только разбор грамматики до уровня “тут вызов функции, а тут объявление массива из 10 элементов”?
типа того.
Парсер должен проглотить подобное:
int a, x;
real b, c, d;
a:=x+a;
b:=c*b-d;
Разрешены только действия с одним типом переменных, т.е. к int прибавлять только инт и ничего больше.
Пока ничего не считаем. Проверям типы и строим таблицу -)
Для всех этих чудес надо пользоваться тулзами lex && yacc
Забавнее было бы написать подобный парсер для сипипи с поддержной классов, имеющих перегруженные операторы “+”, “-“, “/” и “*”, причём чтоб перегрузы были отдельно объявлены для реалов и интегеров, причём чтоб если “+” объяевлен для реала, чтоб было совсем не факт, что он объявлен и для интегера. Во меня несёт -)
Несет тебя не в ту степь совсем -)
Знаешь такую штуку, как context free grammar и yacc?? вот последнее слово работает для создания первого, но только на C без плюсиков
Да и вообще – это домашнее задание было, а не дипломная работа -)