Thanks for the lesson. (Toon could you consider that
even if I ask
extremely
naive (or looking naive) question I'm not totally brainwashed, at
least I believe so
let me with my dreams.)
I did not mean to do no harm.
Apparently this is no what I understood from the first
mse format.
Adrian's first implementation used a literal array representation
just to avoid to do the -TRUE- to true kind of conversion. Adrian can
you comment on that?
So here... I guess this is just that ... the closer a syntax is to the
syntax of the (mainly) used language itself; the easier it is to read
and parse it. (Here easier refers to the amount of work for the
programmer; not for the machine).
If you look at an MSE-file without any MSE-strings in it (since they are
"smalltalk-optimized"); you could just open a scheme-evaluator and
evaluate it as a list (by just putting a ' in front of it). Then scheme
does all the parsing work for you since it just looks exactly the same
as what normal scheme lists would look like. Numbers are read probably
since scheme uses the same kind of numbers; names are scheme-symbols...
and if you don't use '' inside a string to denote '; even strings are
read properly like it should. However; true and false are read as
symbols true and false instead of the boolean values. Whereas, if the
booleans would be #t and #f in the fileformat; this would automatically
yield the scheme-true and scheme-false after read-evalling the list. And
here the same holds for Smalltalk I guess; if you put # in front of an
mse-expression; it just looks like an Array. And smalltalk does all the
"hard" work for you.
Actually; when I did my first scheme-mse-reader; I just did some basic
string-translations on the document which changed true and false into #t
and #f; and those strings ('[^']*')+ into things with "\"".
Then I just
read it as a list. In order to then "parse" it; I don't have to think
about "tokens" etc etc; I just traverse a scheme-list in normal recursion.
I hope that this clarifies your question?
cheers,
and now really of to bed :)
Toon