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

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

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

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

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

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

Доброго времени суток!
Товарищи программисты, у меня курсовая работа на тему: «Программирование лексического анализатора». Мой метод – это конечный автомат. Надо написать на 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;
….



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

Последний раз редактировалось J-lo; 03.01.2012 в 03:37.
J-lo вне форума Ответить с цитированием
Старый 03.01.2012, 18:06   #2
Jaguar83
Профессионал
Пользователь
 
Аватар для Jaguar83
 
Регистрация: 25.05.2011
Сообщений: 91
По умолчанию

С удовольствием помогу решить Вашу проблему.
shalexei@yandex.ru
Помог? Будь человеком - жми на весы слева!
Jaguar83 вне форума Ответить с цитированием
Старый 03.01.2012, 19:56   #3
ШеФФ
Пользователь
 
Регистрация: 16.03.2011
Сообщений: 13
По умолчанию

Если еще актуально, пиши, помогу=)
ashev92@mail.ru
Не забываем плюсовать репутацию, если я Вам помог.
ШеФФ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лексический анализатор ercin1991 Фриланс 2 08.12.2011 11:39
Лексический анализатор ercin1991 Общие вопросы C/C++ 4 05.12.2011 16:34
Лексический анализатор, С++ holy_0dmin Фриланс 4 03.12.2011 02:36
Лексический анализатор serguna005 Паскаль, Turbo Pascal, PascalABC.NET 5 06.12.2008 00:00