Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.23;
Скачать: CL | DM;

Вниз

лексический анализатор   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
9-1095924661
WondeRu
2004-09-23 11:31
2005.01.23
Артиллерия. Бог войны (демо). Оцените, пожалуйста!


14-1104677887
olookin
2005-01-02 17:58
2005.01.23
Луна в новогоднюю ночь...


3-1103199897
Carmen
2004-12-16 15:24
2005.01.23
Неправильно отображаются суммы в диапазоне от 0 до -1


14-1105093655
SamaB
2005-01-07 13:27
2005.01.23
Отладчики


1-1105264235
гость
2005-01-09 12:50
2005.01.23
электрические схемы