Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.035 c
14-1130827728
igi
2005-11-01 09:48
2005.11.27
Регулярные выражения


14-1131096685
Pazitron_Brain
2005-11-04 12:31
2005.11.27
Проблемы с железом #2


10-1107973454
Vcoder
2005-02-09 21:24
2005.11.27
Изменение объекта Equation


2-1131802956
zxc
2005-11-12 16:42
2005.11.27
Народ подскажите неопытному


2-1131355369
Robbins
2005-11-07 12:22
2005.11.27
Ошибка в ShellExecute.




   Наверх