Browse thread
Escaped string in sexplib
[
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: | -- (:) |
| From: | Hugo Ferreira <hmf@i...> |
| Subject: | Re: [Caml-list] Escaped string in sexplib |
Török Edwin wrote: > On 06/08/2010 09:52 PM, Hugo Ferreira wrote: >> Hello, >> >> Markus Mottl wrote: >>> On Tue, Jun 8, 2010 at 11:44, Hugo Ferreira <hmf@inescporto.pt> wrote: >>>> I am trying to us the Sexplib library to process data. >>>> However I am having some trouble with strings. >>>> Specifically I need to save and restore strings to a file >>>> so that the escaping done during saving is "undone" >>>> when data is read back in. >>>> >>>> How can I do this? Appreciate any pointers. >>> The I/O and parsing routines in the S-expression library should take >>> care of escaped strings just fine. >> My apologies but I did not explain myself correctly. The problem here is >> that I am trying to automate the conversion to string of the data >> structure read from the s-expressions. I have the following: >> >> let string_of_experiment_data data = >> let data = sexp_of_experiment_data data in >> Sexplib.Sexp.to_string_hum data >> >> The problem here is that the "to_string_hum" escapes certain characters, >> but I need to have the strings "not escaped". So my question is: is >> their any way I can tell sexplib to output a string but not escape >> it? Otherwise I will have to hand encode this stuff 8-( >> >>> Btw., the escaping conventions are >>> absolutely identical to the ones used by OCaml. >>> >> I am aware of this as it is indicated in your documentation and >> the ocaml tutorial site. I also searched for a means to "unescape" >> the result from "to_string_hum", which would also work. However >> I cannot find a String.unescape. This issue has already been pointed >> out. A possible solution would be to use the old. >> >> Token.eval_string >> >> and I cannot seem to use the equivalent of the new camlp4. The >> equivalent: >> >> open Camlp4.PreCast >> open Syntax >> let eval_string s = Camlp4.Struct.Token.Eval.string ~strict:() s >> >> does not compile (Error: Unbound module Camlp4.PreCast). > > It compiles for me if I add -I +camlp4: > ocamlc -I +camlp4 -c x.ml > or: > ocamlfind ocamlc -package camlp4.lib -c x.ml > > It also links if you add -linkpkg. > Correct. I had forgotten to add the relevant tags to the ocamlbuild file. The following works for me: <src/ilp/experiment.*>: use_camlp4, use_dynlink Thanks, Hugo F. > Best regards, > --Edwin > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs >