<div class="gmail_quote">2009/5/1 Dimitry Golubovsky <span dir="ltr">&lt;<a href="mailto:golubovsky@gmail.com">golubovsky@gmail.com</a>&gt;</span></div><div class="gmail_quote"><br></div><div class="gmail_quote">&lt;snip&gt;</div>
<div class="gmail_quote"><span dir="ltr"></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Can beginning of line (caret) be recognized by Alex?</blockquote><div><br></div><div>You can match the start of a line using a (left) context on a rule. See the docs here:</div><div><br></div><div> <a href="http://www.haskell.org/alex/doc/html/alex-files.html#contexts">http://www.haskell.org/alex/doc/html/alex-files.html#contexts</a></div>
<div><br></div><div>Where it says: &quot;The left context matches the character which immediately precedes the token in the input stream. The character immediately preceding the beginning of the stream is assumed to be \n. The special left-context ^ is shorthand for \n^.&quot;</div>
<div><br></div><div>Alex also supports right contexts too.</div><div><br></div><div>&lt;snip&gt;</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Is this correct understanding that if we want to match any character<br>
except for an asterisk, then Alex would like to see [^\*] rather than<br>
[^*]? And [^\/] rather than [^/]?<br>
<br>
Or would it be better to use a hex code for the asterisk and slash?</blockquote><div><br></div><div>In a character set you must escape certain special characters. The list of special characters is specified in the docs here:</div>
<div><br></div><div> <a href="http://www.haskell.org/alex/doc/html/syntax.html#lexical">http://www.haskell.org/alex/doc/html/syntax.html#lexical</a></div><div><br></div><div>The key line is:</div><div><br></div><div>$special  = [\.\;\,\$\|\*\+\?\#\~\-\{\}\(\)\[\]\^\/]</div>
<div><br></div><div>I&#39;d try to avoid character codes where possible.</div><div><br></div><div>Cheers,</div><div>Bernie.</div></div>