I am supposed to read a complex s-expression tree, modify some nodes and save it somewhere.
It appears that in process the 'read function is "modifying" the input. For instance in a simple example:
CL-USER> (read-from-string "(seq_num 123)")
(SEQ_NUM 123)
13
You can see it capitalize nodes (as well as values).
As well it appears it can add pipes to the outmost left and right of a value. As in:
CL-USER> (read-from-string "(password 000006013H)")
(PASSWORD |000006013H|)
21
It adds pipes!
Is there a way to tell 'read not to do that? I guess such modification are done for good reason when the s-expression is actually a valid LISP program. But here it is not the case. Let see that file as an XML file. A simple configuration file which appears to be a s-expr. I don't need him to "intern" the symbols it reads. I just need him to unserialise it as a tree, since for me it is the easiest way to search the tree then ( 'car and 'cdr are no nice).
Well if the tree is formed then every symbols must be interned.. Told in another words, how can I tell him to intern no symbols, but instead keep it as strings. (thus it could form the cons-tree but instead of pointing to symbols, it would point to characters strings. You see what I mean?)