Hi,

I had a quick look at the ObjectLiterals project - I must admit that I forgot 
most about it ;-)

Now that I see it again, one of the things that strikes me is that there is no 
such thing as a general object fallback, as far as I can see - that is a choice 
of course.

Note that I did answer your earlier mail about STON

http://forum.world.st/About-STON-td4772934.html

Sven

On 29 Aug 2014, at 11:35, stepharo <[email protected]> wrote:

> Hi guys
> 
> we are looking at STON and ObjectLiterals with Christophe and for handling 
> metadata.
> 
> 
> And I was brainstorming.... I was wondering if it would be possible to have a 
> bit more use of self evaluating
> 
> for example
>    1@3
>    #k -> 2 instead of (Association #k 123)
> 
> 
> my brainstorming is how could we minimize new syntactic constructs and still 
> support a literal object format.
> So object literal cover that so may be this is good.
> 
>    1@3 as (Point 1 3)
>    and
>    #k -> 123 as (Association #k 123)
> 
> So I'm not clear but this is interesting to think about it.
> I would like to have also a dictionary literal syntax.... but this another 
> story.
> 
> Stef
> 
> PS: Sven I added support for Association into the ObjectLiteral project to 
> see how it works.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> I took Igor's initial code and created a new project:
> 
>    http://smalltalkhub.com/#!/~SvenVanCaekenberghe/ObjectLiterals/
> 
> and I added ObjectLiteralParser to convert any Character Stream or String 
> into a Smalltalk Literal Array and eventually into an Object.
> 
> This proof of concept moves the ObjectLiteral format/notation away from the 
> Smalltalk compiler and will help us discuss more concretely the actual 
> details of the specification (which is still not 100% finished).
> 
> I also added 12 unit tests and cleaned up the code and comments.
> 
> Please have a look at the code.
> 
> This is one of the tests:
> 
> ObjectLiteralParserTests>>#testMixed1
>    | input output |
>    input := '
>        #(Array
>            1
>            foo
>            #''foo-#bar''
>            true
>            false
>            nil
>            3.14159
>            -100
>            ''string''
>            (#OrderedCollection 7 8 9)
>            #(Set 10)
>            (Dictionary
>                x 1
>                y 2) )  '.
>     output := {
>        1.
>        #foo.
>        #'foo-#bar'.
>        true.
>        false.
>        nil.
>        3.14159.
>        -100.
>        'string'.
>        OrderedCollection withAll: #(7 8 9).
>        Set with: 10.
>        Dictionary newFromPairs: #(x 1 y 2 ). }.
>    self assert: (self parserOn: input) nextObjectLiteral equals: output
> 
> I like this format, its simplicity and elegance is appealing, it offers 
> distinctive advantages in the Smalltalk context while its slight readability 
> disadvantage is acceptable. Like any format it is a compromise and a 
> tradeoff, but a rather good one.
> 
> Regards,
> 
> Sven
> 
> --
> Sven Van Caekenberghe
> http://stfx.eu
> Smalltalk is the Red Pill
> 
> 


Reply via email to