2009/5/1 Dimitry Golubovsky
<snip>
Can beginning of line (caret) be recognized by Alex?
You can match the start of a line using a (left) context on a rule. See the
docs here:
http://www.haskell.org/alex/doc/html/alex-files.html#contexts
Where it says: "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^’."
Alex also supports right contexts too.
<snip>
Is this correct understanding that if we want to match any character
except for an asterisk, then Alex would like to see [^\*] rather than
[^*]? And [^\/] rather than [^/]?
Or would it be better to use a hex code for the asterisk and slash?
In a character set you must escape certain special characters. The list of
special characters is specified in the docs here:
http://www.haskell.org/alex/doc/html/syntax.html#lexical
The key line is:
$special = [\.\;\,\$\|\*\+\?\#\~\-\{\}\(\)\[\]\^\/]
I'd try to avoid character codes where possible.
Cheers,
Bernie.