Использование Ragel с потоковым вводом для определения URL?
Мне нужно эффективно определять URL-адреса во входном потоке во время набора текста.
Детектор URL будет частью процесса набора. Он должен принимать по одному символу за раз в качестве входных данных и выводить по одному символу за раз вместе с URL, к которому принадлежит этот символ. Это может буферизовать текст для просмотра, чтобы сделать это.
Например, если входной поток "Hello http://foo.com World"
, вывод должен быть:
"H": ""
"e": ""
"l": ""
"l": ""
"o": ""
" ": ""
"h": "http://foo.com"
"t": "http://foo.com"
"t": "http://foo.com"
"p": "http://foo.com"
":": "http://foo.com"
"/": "http://foo.com"
"/": "http://foo.com"
"f": "http://foo.com"
"o": "http://foo.com"
"o": "http://foo.com"
".": "http://foo.com"
"c": "http://foo.com"
"o": "http://foo.com"
"m": "http://foo.com"
" ": ""
"W": ""
"o": ""
"r": ""
"l": ""
"d": ""
Можно ли заставить Ragel передавать поток ввода и вывода по мере необходимости?
Кстати, здесь есть (Java) ragel URL-парсер, который я думаю использовать в качестве отправной точки.