Форум: "Основная";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];
Внизлексический анализатор Найти похожие ветки
← →
nap (2005-01-11 15:59) [0]Пишу лексический анализатор. Возникла запарка:
после 1 скобки "}" в тексте не видит далнейший текст.var unit_text:TStringList;
var x,y,i,i1,y1:integer;
tmp:string;
u1:boolean;
begin
i:=0;
tmp:="";
u1:=false;
while not (i=unit_text.Count) do
begin
for x:=1 to length(unit_text.Strings[i]) do
begin
if x<>length(unit_text.Strings[i]) then
if unit_text.Strings[i][x]+unit_text.Strings[i][x+1]="//" then
begin
inc(i);
break;
end;
if unit_text.Strings[i][x]="{" then
for i1:=i to unit_text.Count-1 do
begin
for y:=1 to length(unit_text.Strings[i1]) do
begin
if (i1=i) and (y<x) then y1:=x else y1:=y;
if unit_text.Strings[i1][y1]="}" then
begin
i:=i1;
u1:=true;
break;
end else;
end;
end else;
if u1 then
begin
u1:=false;
break;
end else tmp:=tmp+unit_text.Strings[i][x];
end;
memo2.Lines.Add(tmp);
tmp:="";
inc(i);
end;
← →
Digitman © (2005-01-11 16:03) [1]
> Пишу лексический анализатор
= изобретаю велосипед
← →
nap (2005-01-11 16:06) [2]Помогите пожалуйста, дайте ссылки на исходники на Delphi.
← →
Digitman © (2005-01-11 16:11) [3]ищи ТР Lex&YACC
← →
nap (2005-01-11 16:23) [4]они генерируют исходники на CИ. А как быть с Паскалем
← →
begin...end © (2005-01-11 16:24) [5]> nap (11.01.05 15:59)
> Пишу лексический анализатор.
Какова его задача?
← →
nap (2005-01-11 16:30) [6]создаются таюблицы зарез. слов, чисел, индефикаторов, разделителей
превести в запись вида 0,1 2,45 4,1
где первое число - таблица
после запятой номер слова в таблице
← →
Digitman © (2005-01-11 16:45) [7]
> nap (11.01.05 16:23) [4]
> они генерируют исходники на CИ. А как быть с Паскалем
ты гониишь.
ТР L&Y генерит исх.текст именно в Паскале.
← →
TUser © (2005-01-11 17:24) [8]
> Digitman © (11.01.05 16:11) [3]
> ищи ТР Lex&YACC
yacc есть в CygWin"е. Но ты его не используй. Я видел один язык, очень простой, синтаксис - сишный, да еще и упрощенный по сравнению с Си (очень много чего там не было, начиная с функций). Интерпретируемый. Лек. анализатор написан yacc"ом. Работал отвратительно. По-видимому, я был одним из немногих людей на планете, кто решил-таки с ним разобраться. Потратил 3 дня - и забил, т.к. работать было совершенно невозможно. Поэтому у меня закралось подозрение, что все эти генераторы парсеров использовать не надо. Возможно я не прав.
Пример синт. анализатора для Паскаля можно найти у Вирта - последняя треть книги как раз про это.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c