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

Вниз

Ищу алгоритм разбора   Найти похожие ветки 

 
X9 ©   (2005-10-31 21:42) [0]

Здравсвуйте, Мастера!

Не поделится ли кто-нибудь информацией по составлению алгоритмов разбора строки, в частности интересует быстрый разбор исходников на Pascal.

Заранее всем благодарен,

   С уважением, X9.


 
-=XxX=-   (2005-11-01 01:43) [1]

разбор строки - ты имел ввиду разбивка на  отдельные слова, но что значит быстрый разбор исходников


procedure str_to_words(Var S:string);
 begin
  while pos("  ",s)>0 do
    delete(s,pos("  ",s),1);
  delete(s,1,1);
  delete(s,length(s),1);i:=1;
while pos(" ",s)>0 do
 begin
   words[i]:=copy(s,1,pos(" ",s)-1);
   delete(s,1,pos(" ",s));
   inc(i);
 end;
words[i]:=s;
 end;


 
vertal ©   (2005-11-01 01:50) [2]

Материалов по написанию сканеров куча, есть и куча исходников в сети, было бы желание. Для _быстрого_ разбора я бы вообще не стал пользоваться типом данных string, делел бы через PChar


 
-=XxX=-   (2005-11-01 01:53) [3]

А можно узнать пашьму?, просто честно сказать никогда этим типом не пользовался ))))


 
vertal ©   (2005-11-01 02:13) [4]

> =XxX=-   (01.11.05 01:53) [3]
Из-за расходов на выделение памяти, инициализацию строк, проверки счетчика ссылок. Если исходный текст небольшой, то можно загнать его целиком в память и перемещаться по нему, используя переменную типа Pchar как указатель на последнюю обнаруженную лексему, при этом надо будет хранить ее длину и тип (цифра, ключевое слово, комментарий и т.д.). Это будет быстрее, чем при копировании каждой вновь обнаруженной лексемы в отдельную строку.
Я в кладовку от Керка (kladovka.net.ru) закачивал программу prog2html, там как раз это реализовано (относительно быстрый сканер, хотя конечно можно и дальше оптимизировать).


 
X9 ©   (2005-11-01 18:45) [5]

Требуется разбор теста для последующего его оформления в HTML. То есть нужно отделять от "сухого" текста зарезервированные слова, строковые значения и т. д. Но интересует не готовые решения на конкретном языке, а чисто алгоритмическая сторона.

Просто поражаюсь, с какой скоростью это делает редактор кода Delphi, + ещё строит навигационную карту кода. IMHO быстрее будет сделать очень трудно.

2 vertal
За prog2html спасибо, будем смотреть!


 
xray   (2005-11-01 18:49) [6]

http://rsdn.ru/summary/671.xml


 
X9 ©   (2005-11-01 19:11) [7]

К сожалению, Prog2HTML крайне криво разбирает Pascal.

2 xray
Спасибо, посмотрю.



Страницы: 1 вся ветка

Текущий архив: 2005.11.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.052 c
3-1129253591
fedor
2005-10-14 05:33
2005.11.27
Инсталляция вместе с драйверами InterBase


14-1130970062
Kerk
2005-11-03 01:21
2005.11.27
Яндекс :)


2-1131736686
Mozart
2005-11-11 22:18
2005.11.27
Delphi + PostGreSQL


1-1130844137
ai3000
2005-11-01 14:22
2005.11.27
Мега-БПЛ


14-1131429644
Laymer
2005-11-08 09:00
2005.11.27
ODBC для FireBerd