<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Try changing the definition of â€˜content’ to:<div class=""><br class=""></div><div class=""><div class=""><font face="Courier New" class="">    content = (</font></div><div class=""><font face="Courier New" class="">      any - (space | '<')</font></div><div class=""><font face="Courier New" class="">    )+;</font></div><div class=""><font face="Courier New" class=""><br class=""></font></div><div class=""><font face="Courier New" class="">Cheers,</font></div><div class=""><font face="Courier New" class="">ml</font></div><div class=""><font face="Courier New" class=""><br class=""></font></div><div><blockquote type="cite" class=""><div class="">On Jan 18, 2017, at 13:38 , Andrey Kulikov <<a href="mailto:amdeich@gmail.com" class="">amdeich@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class=""><div class="">Hello,<br class=""><br class=""></div>In my project I need to extract links from HTML document.<br class=""></div>For this purpose I've prepared ragel HTML grammar, primarily based on this work:<br class=""><a href="https://github.com/brianpane/jitify-core/blob/master/src/core/jitify_html_lexer.rl" class="">https://github.com/brianpane/jitify-core/blob/master/src/core/jitify_html_lexer.rl</a><br class=""></div>(mentioned here: <a href="http://ragel-users.complang.narkive.com/qhjr33zj/ragel-grammars-for-html-css-and-javascript" class="">http://ragel-users.complang.narkive.com/qhjr33zj/ragel-grammars-for-html-css-and-javascript</a> )<br class=""><br class=""><br class=""></div>Almost all works well (thanks for the great tool!), except one issue I can't overcome to date:<br class=""><br class="">If I specify this thext as an input:<br class="">bbbb <a href="first_link.aspx">  cccc<a href="/second_link.aspx"><br class=""></div>my parser can correctly extract first link, but not the second one.<br class=""></div>The difference between them is that there is a space between 'bbbb' and '<a', but no spaces between 'cccc' and '<a'.<br class=""></div><br class="">In general, if any text, except spaces, exists before '<a' tag it makes parses consider it as content, and parser do not recognize tag open.<br class=""><br class=""></div>Could please anyone give any hint how to improve existing grammar, in order to make it recognize tag open?<br class=""><br class=""></div>Please find attached intentionally simplified sample with grammar, aiming to work as C program ( ngx_url_html_portion.rl ).<br class=""></div>There is also input file input-nbsp.html , which expected to contain input for the application.<br class=""><br class=""></div>In order to play with it, make .c-file from grammar:<br class=""></div>ragel ngx_url_html_portion.rl<div class=""><div class=""><div class="">then compile resulting .c-file and run programm.<br class=""></div><div class="">Input file should be in the same directory.<br class=""><br class=""></div><div class="">Will be <span id="gmail-result_box" class="gmail-short_text" lang="en"><span class="gmail-">sincerely </span></span>grateful for any clue.<br class=""><br class="">--<br class=""></div><div class="">Andrey<br class=""></div></div></div></div>
<span id="cid:F4DA4ADF-3727-40D2-BF7B-816B9C66055A"><input-nbsp.html></span><span id="cid:048AD408-AFC2-4576-A7C5-F5C5E06E2E41"><ngx_url_html_portion.rl></span>_______________________________________________<br class="">ragel mailing list<br class=""><a href="mailto:ragel@colm.net" class="">ragel@colm.net</a><br class="">http://www.colm.net/cgi-bin/mailman/listinfo/ragel<br class=""></div></blockquote></div><br class=""></div></body></html>