[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2007-04-05 (20:58) |
From: | Janne Hellsten <jjhellst@g...> |
Subject: | Re: [Caml-list] Matching start of input in lexer created with ocamllex |
> let table = ["for", FOR; "while", WHILE] > .. > | space-not-newline + { WHITE } > | newline { NEWLINE } > | ident as id { try assoc id table with Not_found -> IDENT id } > > An alternative to the WHITE and NEWLINE tokens is a tail > recursive call to the lexer: > > | space + { initial lexbuf } > > which just skips over the spaces. I do have the latter construct in my lexer. How does the above help me match the beginning of line in the rule | '!' [' ' '\t']* "for" { FOR (current_loc ()) } I'd like it to look like this: | "^!for" { FOR } where ^ would denote the start of input. To simplify my question, we can assume there are no new line chars in my input. This regexp: '!' [' ' '\t']* "for" could actually be simplified to | "!for" and I would still need to match the "beginning of input" somehow. I must've missed your point. Janne