Browse thread
camlp4 char stream
-
Christophe Raffalli
-
Martin Jambon
-
Christophe Raffalli
- Martin Jambon
- Olivier Andrieu
- Pietro Abate
-
Christophe Raffalli
-
Martin Jambon
[
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: | 2005-09-12 (13:27) |
From: | Olivier Andrieu <andrieu@i...> |
Subject: | Re: [Caml-list] camlp4 char stream |
Christophe Raffalli [Monday 12 September 2005] : > > OK, I found it (quote from your tutorial): > > let operator_rparen = > Grammar.Entry.of_parser gram "operator_rparen" > (fun strm -> > match Stream.npeek 2 strm with > | [("", s); ("", ")")] when is_operator s -> > begin > Stream.junk strm; > Stream.junk strm; > s > end > | _ -> raise Stream.Failure) > > OK, I read your tutorial, but did not get the point ... thks > > and what is the first member of the tuple ? > Why is the second member a string and not a char ? That's just how the camlp4 lexer works, cf. : http://caml.inria.fr/pub/docs/manual-camlp4/manual005.html#toc13 http://caml.inria.fr/pub/docs/manual-camlp4/lib/Plexer.html If I understand, you'd want to switch to a different lexer (and parser) at some point. As Martin said, quotation expanders let you basically do that. But IIRC camlp4 (the program) only expands quotations in expression or pattern levels, not at the structure item level so that won't work for you. But the ocpp program (installed with camlp4) expands quotation in any file (only quotations returning string of course). -- Olivier