Hello
I understand that the SISS serialisation format has been used in the Etoys 5.0 image to store quick guides. It is a plain text format.
What does SISS stand for?
Browsing the Etoys 5.0 image .....
To use SISS classes need to implement a method
sissExportSpecification
For example for Workspace it is
sissExportSpecification
^ #(('contents' #sissGetContents) ('bindings' #bindings) ('acceptDroppedMorphs' #acceptsDroppingMorphForReference) )
And a method
sissWriteValue
Morph >> sissWriteValue sissWriteValue
self prepareToBeSaved.
or
Object>>sissWriteValue sissWriteValue "Override if you wish"
^self
PasteUpMorph>>sissWriteValue sissWriteValue "Override if you wish"
| new | self prepareToBeSaved. new _ self clone. new privateSubmorphs: (submorphs reject: [:e | (e isKindOf: SolidSugarSuppliesTab) or: [(e isKindOf: Viewer) or: [(e isKindOf: SugarNavTab) or: [((e isKindOf: SystemWindow) and: [(e model isKindOf: Workspace) not]) or: [(e isMemberOf: FlapTab) and: [e isGlobalFlap]]]]]]). new instVarNamed: 'presenter' put: nil. new instVarNamed: 'worldState' put: nil. new privateExtension: self extension copy. new extension removeOtherProperties. self extension otherProperties keysDo: [:sym | (#(commandKeySelectors lastKeystroke locked) includes: sym) ifFalse: [ new setProperty: sym toValue: (self extension valueOfProperty: sym) ]. ].
^ new.
Form>> sissWriteValue
SISSDictionaryForScanning reduceFormDepth ifTrue: [ ^ (self asFormOfDepth: 8) hibernate. ]. ^ self hibernate.
An example of the format
MSExpParser test1
| str1 str2 str3 | str1 _ '(script :name "testscript1:" :type "Player" :player "12" (parameter :name "parameter" :type "Number" :position "1") (sequence (loop :type "repeat" (initial (literal :value "0")) (increment (literal :value "1")) (test (send :type "Number" (selector :selector "+") (send :type "Number" (selector :getter "x") (literal :type "Player" :value "self")) (literal :type "Number" :value "1"))) (sequence (assign :type "Number" :updating "Incr:" :property "x" (literal :type "Player" :value "4") (send :type "Number" (selector :selector "+") (literal :type "Number" :value "244.0") (literal :type "Number" :value "1")))))))'.
I understand that the SISS format has been used successfully in the Etoys image to store quick guide projects.
As far as Project saving is concerned it there a difference between Etoy Quick guide projects and regular Squeak Morphic projects?
Where can I find more information on the SISS format?
Regards
Hannes
An entry point for reading about SISS in the Squeakland Etoys 5.0 image
QuickGuideMorph>>
convertProjectsWithBooksToSISSIn: dir to: outDir
| p book | dir fileNames do: [:f | (f endsWith: '.pr') ifTrue: [ p _ ProjectLoading loadName: f stream: (dir readOnlyFileNamed: f) fromDirectory: dir withProjectView: nil. book _ p world submorphs detect: [:b | b isMemberOf: BookMorph] ifNone: [nil]. book ifNotNil: [ book hidePageControls. book storeAsDataStreamNamed: (outDir fullNameFor: (f copyUpTo: $.), '.sexp.data.gz'). ]. p okToChangeSilently. ]. ].
On 8/31/16, H. Hirzel hannes.hirzel@gmail.com wrote:
Hello
I understand that the SISS serialisation format has been used in the Etoys 5.0 image to store quick guides. It is a plain text format.
What does SISS stand for?
Browsing the Etoys 5.0 image .....
To use SISS classes need to implement a method
sissExportSpecification
For example for Workspace it is
sissExportSpecification
^ #(('contents' #sissGetContents) ('bindings' #bindings) ('acceptDroppedMorphs' #acceptsDroppingMorphForReference) )
And a method
sissWriteValue
Morph >> sissWriteValue sissWriteValue
self prepareToBeSaved.
or
Object>>sissWriteValue sissWriteValue "Override if you wish"
^self
PasteUpMorph>>sissWriteValue sissWriteValue "Override if you wish"
| new | self prepareToBeSaved. new _ self clone. new privateSubmorphs: (submorphs reject: [:e | (e isKindOf: SolidSugarSuppliesTab) or: [(e isKindOf: Viewer) or: [(e isKindOf: SugarNavTab) or: [((e isKindOf: SystemWindow) and: [(e model isKindOf: Workspace) not]) or: [(e isMemberOf: FlapTab) and: [e isGlobalFlap]]]]]]). new instVarNamed: 'presenter' put: nil. new instVarNamed: 'worldState' put: nil. new privateExtension: self extension copy. new extension removeOtherProperties. self extension otherProperties keysDo: [:sym | (#(commandKeySelectors lastKeystroke locked) includes: sym) ifFalse: [ new setProperty: sym toValue: (self extension valueOfProperty: sym) ]. ].
^ new.
Form>> sissWriteValue
SISSDictionaryForScanning reduceFormDepth ifTrue: [ ^ (self asFormOfDepth: 8) hibernate. ]. ^ self hibernate.
An example of the format
MSExpParser test1
| str1 str2 str3 | str1 _ '(script :name "testscript1:" :type "Player" :player "12" (parameter :name "parameter" :type "Number" :position "1") (sequence (loop :type "repeat" (initial (literal :value "0")) (increment (literal :value "1")) (test (send :type "Number" (selector :selector "+") (send :type "Number" (selector :getter "x") (literal :type "Player" :value "self")) (literal :type "Number" :value "1"))) (sequence (assign :type "Number"
:updating "Incr:" :property "x" (literal :type "Player" :value "4") (send :type "Number" (selector :selector "+") (literal :type "Number" :value "244.0") (literal :type "Number" :value "1")))))))'.
I understand that the SISS format has been used successfully in the Etoys image to store quick guide projects.
As far as Project saving is concerned it there a difference between Etoy Quick guide projects and regular Squeak Morphic projects?
Where can I find more information on the SISS format?
Regards
Hannes
The class comment of QuickGuideMorph. It refers to the place where the exported SISS files of the projects are stored. The Squeakland image contains many examples of SISS files.
----------------------------------------------------
A BookMorph that holds QuickGuides.
World an AlignmentMorph (the flap) an AlignmentMorph a QuickGuideMorph (one page per guide, 54 pages. Page may be a stub if guide not in) a QuickGuideHolderMorph a BookMorph (4 pages) a PasteUpMorph (a page)
QuickGuides are stored in Contents/Resources/QuickGuides/ or by language in Contents/Resources/locale/<id>/QuickGuides/ (see guidePath)
Categories = OrderedCollection of {catKey. catTitle} where catKey appears at the start of a file name 'Menu' catTitle may be UTF-8 full name. PagesForCategory dictionary of (catKey -> list). list has elements {guideName. guideTitle}. guideName is last part of a file name and guideTitle may be in UTF-8.
On 8/31/16, H. Hirzel hannes.hirzel@gmail.com wrote:
An entry point for reading about SISS in the Squeakland Etoys 5.0 image
QuickGuideMorph>>
convertProjectsWithBooksToSISSIn: dir to: outDir
| p book | dir fileNames do: [:f | (f endsWith: '.pr') ifTrue: [ p _ ProjectLoading loadName: f stream: (dir readOnlyFileNamed: f) fromDirectory: dir withProjectView: nil. book _ p world submorphs detect: [:b | b isMemberOf: BookMorph] ifNone: [nil]. book ifNotNil: [ book hidePageControls. book storeAsDataStreamNamed: (outDir fullNameFor: (f copyUpTo: $.), '.sexp.data.gz'). ]. p okToChangeSilently. ]. ].
On 8/31/16, H. Hirzel hannes.hirzel@gmail.com wrote:
Hello
I understand that the SISS serialisation format has been used in the Etoys 5.0 image to store quick guides. It is a plain text format.
What does SISS stand for?
Browsing the Etoys 5.0 image .....
To use SISS classes need to implement a method
sissExportSpecification
For example for Workspace it is
sissExportSpecification
^ #(('contents' #sissGetContents) ('bindings' #bindings) ('acceptDroppedMorphs' #acceptsDroppingMorphForReference) )
And a method
sissWriteValue
Morph >> sissWriteValue sissWriteValue
self prepareToBeSaved.
or
Object>>sissWriteValue sissWriteValue "Override if you wish"
^self
PasteUpMorph>>sissWriteValue sissWriteValue "Override if you wish"
| new | self prepareToBeSaved. new _ self clone. new privateSubmorphs: (submorphs reject: [:e | (e isKindOf: SolidSugarSuppliesTab) or: [(e isKindOf: Viewer) or: [(e isKindOf: SugarNavTab) or: [((e isKindOf: SystemWindow) and: [(e model isKindOf: Workspace) not]) or: [(e isMemberOf: FlapTab) and: [e isGlobalFlap]]]]]]). new instVarNamed: 'presenter' put: nil. new instVarNamed: 'worldState' put: nil. new privateExtension: self extension copy. new extension removeOtherProperties. self extension otherProperties keysDo: [:sym | (#(commandKeySelectors lastKeystroke locked) includes: sym) ifFalse: [ new setProperty: sym toValue: (self extension valueOfProperty: sym) ]. ].
^ new.
Form>> sissWriteValue
SISSDictionaryForScanning reduceFormDepth ifTrue: [ ^ (self asFormOfDepth: 8) hibernate. ]. ^ self hibernate.
An example of the format
MSExpParser test1
| str1 str2 str3 | str1 _ '(script :name "testscript1:" :type "Player" :player "12" (parameter :name "parameter" :type "Number" :position
"1") (sequence (loop :type "repeat" (initial (literal :value "0")) (increment (literal :value "1")) (test (send :type "Number" (selector :selector "+") (send :type "Number" (selector :getter "x") (literal :type "Player" :value "self")) (literal :type "Number" :value "1"))) (sequence (assign :type "Number" :updating "Incr:" :property "x" (literal :type "Player" :value "4") (send :type "Number" (selector :selector "+") (literal :type "Number" :value "244.0") (literal :type "Number" :value "1")))))))'.
I understand that the SISS format has been used successfully in the Etoys image to store quick guide projects.
As far as Project saving is concerned it there a difference between Etoy Quick guide projects and regular Squeak Morphic projects?
Where can I find more information on the SISS format?
Regards
Hannes
Hi,
I would recommend to look at the slightly cleaned up project export code in the Etoys 6 package (file.squeak.org/etoys). You can export plain morphic projects just fine in that package. However, all SystemWindows except workspaces are currently explicitly ignored.
As far as saving is concerned, the QuickGuides simply use a special exporter (for book morphs), rather than the Project exporter.
cheers, Tim
On Wed, 31 Aug 2016 at 09:16 H. Hirzel hannes.hirzel@gmail.com wrote:
The class comment of QuickGuideMorph. It refers to the place where the exported SISS files of the projects are stored. The Squeakland image contains many examples of SISS files.
A BookMorph that holds QuickGuides.
World an AlignmentMorph (the flap) an AlignmentMorph a QuickGuideMorph (one page per guide, 54 pages. Page may be a stub if guide not in) a QuickGuideHolderMorph a BookMorph (4 pages) a PasteUpMorph (a page)
QuickGuides are stored in Contents/Resources/QuickGuides/ or by language in Contents/Resources/locale/<id>/QuickGuides/ (see guidePath)
Categories = OrderedCollection of {catKey. catTitle} where catKey appears at the start of a file name 'Menu' catTitle may be UTF-8 full name. PagesForCategory dictionary of (catKey -> list). list has elements {guideName. guideTitle}. guideName is last part of a file name and guideTitle may be in UTF-8.
On 8/31/16, H. Hirzel hannes.hirzel@gmail.com wrote:
An entry point for reading about SISS in the Squeakland Etoys 5.0 image
QuickGuideMorph>>
convertProjectsWithBooksToSISSIn: dir to: outDir
| p book | dir fileNames do: [:f | (f endsWith: '.pr') ifTrue: [ p _ ProjectLoading loadName: f stream: (dir
readOnlyFileNamed: f)
fromDirectory: dir withProjectView: nil. book _ p world submorphs detect: [:b | b
isMemberOf: BookMorph]
ifNone: [nil]. book ifNotNil: [ book hidePageControls. book storeAsDataStreamNamed: (outDir
fullNameFor: (f copyUpTo:
$.), '.sexp.data.gz'). ]. p okToChangeSilently. ]. ].
On 8/31/16, H. Hirzel hannes.hirzel@gmail.com wrote:
Hello
I understand that the SISS serialisation format has been used in the Etoys 5.0 image to store quick guides. It is a plain text format.
What does SISS stand for?
Browsing the Etoys 5.0 image .....
To use SISS classes need to implement a method
sissExportSpecification
For example for Workspace it is
sissExportSpecification
^ #(('contents' #sissGetContents) ('bindings' #bindings) ('acceptDroppedMorphs' #acceptsDroppingMorphForReference) )
And a method
sissWriteValue
Morph >> sissWriteValue sissWriteValue
self prepareToBeSaved.
or
Object>>sissWriteValue sissWriteValue "Override if you wish"
^self
PasteUpMorph>>sissWriteValue sissWriteValue "Override if you wish"
| new | self prepareToBeSaved. new _ self clone. new privateSubmorphs: (submorphs reject: [:e | (e isKindOf: SolidSugarSuppliesTab) or: [(e isKindOf: Viewer) or: [(e isKindOf: SugarNavTab) or: [((e isKindOf: SystemWindow)
and: [(e model isKindOf: Workspace)
not]) or: [(e isMemberOf:
FlapTab) and: [e isGlobalFlap]]]]]]).
new instVarNamed: 'presenter' put: nil. new instVarNamed: 'worldState' put: nil. new privateExtension: self extension copy. new extension removeOtherProperties. self extension otherProperties keysDo: [:sym | (#(commandKeySelectors lastKeystroke locked) includes:
sym) ifFalse: [
new setProperty: sym toValue: (self extension
valueOfProperty: sym)
]. ]. ^ new.
Form>> sissWriteValue
SISSDictionaryForScanning reduceFormDepth ifTrue: [ ^ (self asFormOfDepth: 8) hibernate. ]. ^ self hibernate.
An example of the format
MSExpParser test1
| str1 str2 str3 | str1 _ '(script :name "testscript1:" :type "Player" :player "12" (parameter :name "parameter" :type "Number" :position
"1") (sequence (loop :type "repeat" (initial (literal :value "0")) (increment (literal :value "1")) (test (send :type "Number" (selector :selector "+") (send :type "Number" (selector :getter "x") (literal :type "Player" :value "self")) (literal :type "Number" :value "1"))) (sequence (assign :type "Number" :updating "Incr:" :property "x" (literal :type "Player" :value "4") (send :type "Number" (selector :selector "+") (literal :type "Number" :value "244.0") (literal :type "Number" :value "1")))))))'.
I understand that the SISS format has been used successfully in the Etoys image to store quick guide projects.
As far as Project saving is concerned it there a difference between Etoy Quick guide projects and regular Squeak Morphic projects?
Where can I find more information on the SISS format?
Regards
Hannes
Thank you Tim,
The reference is http://files.squeak.org/etoys/6.0beta/Etoys6.0beta-7605-32bit/
(not file.squeak.org) --Hannes
On 8/31/16, Tim Felgentreff timfelgentreff@gmail.com wrote:
Hi,
I would recommend to look at the slightly cleaned up project export code in the Etoys 6 package (file.squeak.org/etoys). You can export plain morphic projects just fine in that package. However, all SystemWindows except workspaces are currently explicitly ignored.
As far as saving is concerned, the QuickGuides simply use a special exporter (for book morphs), rather than the Project exporter.
cheers, Tim
On Wed, 31 Aug 2016 at 09:16 H. Hirzel hannes.hirzel@gmail.com wrote:
The class comment of QuickGuideMorph. It refers to the place where the exported SISS files of the projects are stored. The Squeakland image contains many examples of SISS files.
A BookMorph that holds QuickGuides.
World an AlignmentMorph (the flap) an AlignmentMorph a QuickGuideMorph (one page per guide, 54 pages. Page may be a stub if guide not in) a QuickGuideHolderMorph a BookMorph (4 pages) a PasteUpMorph (a page)
QuickGuides are stored in Contents/Resources/QuickGuides/ or by language in Contents/Resources/locale/<id>/QuickGuides/ (see guidePath)
Categories = OrderedCollection of {catKey. catTitle} where catKey appears at the start of a file name 'Menu' catTitle may be UTF-8 full name. PagesForCategory dictionary of (catKey -> list). list has elements {guideName. guideTitle}. guideName is last part of a file name and guideTitle may be in UTF-8.
On 8/31/16, H. Hirzel hannes.hirzel@gmail.com wrote:
An entry point for reading about SISS in the Squeakland Etoys 5.0 image
QuickGuideMorph>>
convertProjectsWithBooksToSISSIn: dir to: outDir
| p book | dir fileNames do: [:f | (f endsWith: '.pr') ifTrue: [ p _ ProjectLoading loadName: f stream: (dir
readOnlyFileNamed: f)
fromDirectory: dir withProjectView: nil. book _ p world submorphs detect: [:b | b
isMemberOf: BookMorph]
ifNone: [nil]. book ifNotNil: [ book hidePageControls. book storeAsDataStreamNamed: (outDir
fullNameFor: (f copyUpTo:
$.), '.sexp.data.gz'). ]. p okToChangeSilently. ]. ].
On 8/31/16, H. Hirzel hannes.hirzel@gmail.com wrote:
Hello
I understand that the SISS serialisation format has been used in the Etoys 5.0 image to store quick guides. It is a plain text format.
What does SISS stand for?
Browsing the Etoys 5.0 image .....
To use SISS classes need to implement a method
sissExportSpecification
For example for Workspace it is
sissExportSpecification
^ #(('contents' #sissGetContents) ('bindings' #bindings) ('acceptDroppedMorphs' #acceptsDroppingMorphForReference) )
And a method
sissWriteValue
Morph >> sissWriteValue sissWriteValue
self prepareToBeSaved.
or
Object>>sissWriteValue sissWriteValue "Override if you wish"
^self
PasteUpMorph>>sissWriteValue sissWriteValue "Override if you wish"
| new | self prepareToBeSaved. new _ self clone. new privateSubmorphs: (submorphs reject: [:e | (e isKindOf: SolidSugarSuppliesTab) or: [(e isKindOf: Viewer) or: [(e isKindOf: SugarNavTab) or: [((e isKindOf: SystemWindow)
and: [(e model isKindOf: Workspace)
not]) or: [(e isMemberOf:
FlapTab) and: [e isGlobalFlap]]]]]]).
new instVarNamed: 'presenter' put: nil. new instVarNamed: 'worldState' put: nil. new privateExtension: self extension copy. new extension removeOtherProperties. self extension otherProperties keysDo: [:sym | (#(commandKeySelectors lastKeystroke locked) includes:
sym) ifFalse: [
new setProperty: sym toValue: (self extension
valueOfProperty: sym)
]. ]. ^ new.
Form>> sissWriteValue
SISSDictionaryForScanning reduceFormDepth ifTrue: [ ^ (self asFormOfDepth: 8) hibernate. ]. ^ self hibernate.
An example of the format
MSExpParser test1
| str1 str2 str3 | str1 _ '(script :name "testscript1:" :type "Player" :player
"12" (parameter :name "parameter" :type "Number" :position "1") (sequence (loop :type "repeat" (initial (literal :value "0")) (increment (literal :value "1")) (test (send :type "Number" (selector :selector "+") (send :type "Number" (selector :getter "x") (literal :type "Player" :value "self")) (literal :type "Number" :value "1"))) (sequence (assign :type "Number" :updating "Incr:" :property "x" (literal :type "Player" :value "4") (send :type "Number" (selector :selector "+") (literal :type "Number" :value "244.0") (literal :type "Number" :value "1")))))))'.
I understand that the SISS format has been used successfully in the Etoys image to store quick guide projects.
As far as Project saving is concerned it there a difference between Etoy Quick guide projects and regular Squeak Morphic projects?
Where can I find more information on the SISS format?
Regards
Hannes
On Tue, Aug 30, 2016 at 11:21 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Hello
I understand that the SISS serialisation format has been used in the Etoys 5.0 image to store quick guides. It is a plain text format.
What does SISS stand for?
I am really bad at naming things but Umezawa-san had an inter-implementation object exchange format called SIXX, based on XML; SISS was based on S-Expression instead of XML.
Browsing the Etoys 5.0 image .....
To use SISS classes need to implement a method
sissExportSpecification
For example for Workspace it is
sissExportSpecification
^ #(('contents' #sissGetContents) ('bindings' #bindings) ('acceptDroppedMorphs' #acceptsDroppingMorphForReference) )
And a method
sissWriteValue
Morph >> sissWriteValue sissWriteValue
self prepareToBeSaved.
or
Object>>sissWriteValue sissWriteValue "Override if you wish"
^self
PasteUpMorph>>sissWriteValue sissWriteValue "Override if you wish"
| new | self prepareToBeSaved. new _ self clone. new privateSubmorphs: (submorphs reject: [:e | (e isKindOf: SolidSugarSuppliesTab) or: [(e isKindOf: Viewer) or: [(e isKindOf: SugarNavTab) or: [((e isKindOf: SystemWindow) and: [(e model isKindOf: Workspace) not]) or: [(e isMemberOf: FlapTab) and: [e isGlobalFlap]]]]]]). new instVarNamed: 'presenter' put: nil. new instVarNamed: 'worldState' put: nil. new privateExtension: self extension copy. new extension removeOtherProperties. self extension otherProperties keysDo: [:sym | (#(commandKeySelectors lastKeystroke locked) includes: sym) ifFalse: [ new setProperty: sym toValue: (self extension valueOfProperty: sym) ]. ]. ^ new.
Form>> sissWriteValue
SISSDictionaryForScanning reduceFormDepth ifTrue: [ ^ (self asFormOfDepth: 8) hibernate. ]. ^ self hibernate.
An example of the format
MSExpParser test1
| str1 str2 str3 | str1 _ '(script :name "testscript1:" :type "Player" :player "12" (parameter :name "parameter" :type "Number" :position "1") (sequence (loop :type "repeat" (initial (literal :value "0")) (increment (literal :value "1")) (test (send :type "Number" (selector :selector "+") (send :type "Number" (selector :getter "x") (literal :type "Player" :value "self")) (literal :type "Number" :value "1"))) (sequence (assign :type "Number"
:updating "Incr:" :property "x" (literal :type "Player" :value "4") (send :type "Number" (selector :selector "+") (literal :type "Number" :value "244.0") (literal :type "Number" :value "1")))))))'.
I understand that the SISS format has been used successfully in the Etoys image to store quick guide projects.
As far as Project saving is concerned it there a difference between Etoy Quick guide projects and regular Squeak Morphic projects?
I can't remember for sure but the difference must be small. I can't even locate etoys-dev image on my computer in front of me so it'd need some digging.
Where can I find more information on the SISS format?
I'd like to know about that, too^^;
On 8/31/16, Yoshiki Ohshima Yoshiki.Ohshima@acm.org wrote:
On Tue, Aug 30, 2016 at 11:21 PM, H. Hirzel hannes.hirzel@gmail.com wrote:
Hello
I understand that the SISS serialisation format has been used in the Etoys 5.0 image to store quick guides. It is a plain text format.
What does SISS stand for?
I am really bad at naming things but Umezawa-san had an inter-implementation object exchange format called SIXX, based on XML; SISS was based on S-Expression instead of XML.
Browsing the Etoys 5.0 image .....
To use SISS classes need to implement a method
sissExportSpecification
For example for Workspace it is
sissExportSpecification
^ #(('contents' #sissGetContents) ('bindings' #bindings) ('acceptDroppedMorphs' #acceptsDroppingMorphForReference) )
And a method
sissWriteValue
Morph >> sissWriteValue sissWriteValue
self prepareToBeSaved.
or
Object>>sissWriteValue sissWriteValue "Override if you wish"
^self
PasteUpMorph>>sissWriteValue sissWriteValue "Override if you wish"
| new | self prepareToBeSaved. new _ self clone. new privateSubmorphs: (submorphs reject: [:e | (e isKindOf: SolidSugarSuppliesTab) or: [(e isKindOf: Viewer) or: [(e isKindOf: SugarNavTab) or: [((e isKindOf: SystemWindow)
and: [(e model isKindOf: Workspace) not]) or: [(e isMemberOf: FlapTab) and: [e isGlobalFlap]]]]]]). new instVarNamed: 'presenter' put: nil. new instVarNamed: 'worldState' put: nil. new privateExtension: self extension copy. new extension removeOtherProperties. self extension otherProperties keysDo: [:sym | (#(commandKeySelectors lastKeystroke locked) includes: sym) ifFalse: [ new setProperty: sym toValue: (self extension valueOfProperty: sym) ]. ].
^ new.
Form>> sissWriteValue
SISSDictionaryForScanning reduceFormDepth ifTrue: [ ^ (self asFormOfDepth: 8) hibernate. ]. ^ self hibernate.
An example of the format
MSExpParser test1
| str1 str2 str3 | str1 _ '(script :name "testscript1:" :type "Player" :player "12" (parameter :name "parameter" :type "Number" :position
"1") (sequence (loop :type "repeat" (initial (literal :value "0")) (increment (literal :value "1")) (test (send :type "Number" (selector :selector "+") (send :type "Number" (selector :getter "x") (literal :type "Player" :value "self")) (literal :type "Number" :value "1"))) (sequence (assign :type "Number" :updating "Incr:" :property "x" (literal :type "Player" :value "4") (send :type "Number" (selector :selector "+") (literal :type "Number" :value "244.0") (literal :type "Number" :value "1")))))))'.
I understand that the SISS format has been used successfully in the Etoys image to store quick guide projects.
As far as Project saving is concerned it there a difference between Etoy Quick guide projects and regular Squeak Morphic projects?
I can't remember for sure but the difference must be small. I can't even locate etoys-dev image on my computer in front of me so it'd need some digging.
The Etoys 6 image contains a slightly refactored version according to Tim Felgentreff. http://files.squeak.org/etoys/6.0beta/Etoys6.0beta-7605-32bit/
Three class categories
('SISS-Core' SISSDictionaryForGuideBook SISSDictionaryForMorphCopying SISSDictionaryForReading SISSDictionaryForScanning SISSProxy)
('SISS-Meta' MSExpParser MSExpTokenizer SExpAttributes SExpElement)
('Etoys-Squeakland-SISS-Serialization' ParseNodeBuilder)
Where can I find more information on the SISS format?
I'd like to know about that, too^^;
-- -- Yoshiki
squeak-dev@lists.squeakfoundation.org