2009/5/1 Dimitry Golubovsky <golubov...@gmail.com>

<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.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to