Главная страница
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.025 c
14-1105175772
Чеширский_Кот
2005-01-08 12:16
2005.01.23
Data Warehousing


1-1105005604
AndreySoft
2005-01-06 13:00
2005.01.23
InputQuery и PasswordChar


1-1104904307
rus9
2005-01-05 08:51
2005.01.23
Excel


4-1102065085
ZugZug
2004-12-03 12:11
2005.01.23
Определить, запущена ли другая прога


14-1104527215
Игорь Шевченко
2005-01-01 00:06
2005.01.23
Наталия, с днем рождения!