Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2012, 03:38   #1
J-lo
 
Регистрация: 15.04.2010
Сообщений: 9
По умолчанию Программирование лексического анализатора

Доброго времени суток!
Товарищи программисты, у меня курсовая работа на тему: «Программирование лексического анализатора». Мой метод – это конечный автомат. Надо написать на Delphi, поскольку там можно реализовать формы! Нужно реализовать с помощью подпрограмм. Т.е. каждому состоянию соответствует процедура/функция.
Т.е. на вход ЛА подается простой текст (например, .txt), а на выходе он должен сформировать выходную таблицу лексем, а также таблицы констант и идентификаторов (в случае, если типов больше 1, таблица идентификаторов должна содержать поле "тип"). И все это должно отображаться в формочке.
Грамматика для моего компилятора, диаграмма состояний, пример программы и все таблицы есть в электронном виде!

Вот небольшой пример:

Код:
procedure p1(IsRead:Boolean);
Begin
<пропуск белых разделителей>
If not IsRead then
c:=NextChar();
S:=S+c;
case c of
'a' .. 'z','A'..'D','F'..'Z' : p2();
'0','1','2','3','4','5','6','7','8' ,'9' : p3();
':' : p4();
'<' : p5();
'>' : p6();
';',',','+','*','/','?','#','(',')','[',']' :begin
addlex(c);
p1(false);
end
...
procedure p2(IsRead:Boolean);
begin
//пропуск белых расделителей
if not IsRead then
c:=NextChar();
S:=S+c;
case c of
'a' .. 'z','A'..'D','F'..'Z','0','1','2',' 3','4','5','6','7','8','9' : p2;
else begin
addlex(S,-1);
p1(true);
end;
end;
…
procedure p3(IsRead:Boolean);
begin
//пропуск белых расделителей
if not IsRead then
c:=NextChar();
S:=S+c;
case c of
'0','1','2','3','4','5','6','7','8' ,'9' : p3;
else begin
addlex(S,CONCODE);
p1(true);
end;
end;
….


И так далее для других состояний!
Пожалуйста, откликнитесь!!!!По зарез надо!!!!!
Кто возьмется, пишите!!!!!

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 03.01.2012 в 11:13.
J-lo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проектирование лексического анализатора Катерина-студентка Помощь студентам 2 20.03.2013 16:22
Ошибка синтаксического анализатора Alex2012 ASP.NET 1 15.12.2011 21:29
Создание веб-приложения на PHP. Тема- Разработка синтаксического анализатора для языка SQL dashi Помощь студентам 0 07.12.2011 15:41
разработка лексико-морфологического анализатора с эстонского на русский язык. Timophey Помощь студентам 3 08.06.2011 05:29
статья - История одного лексического анализатора Pblog Обсуждение статей 0 27.02.2011 23:10