Report 'Smalltalk code' '''From MetaEdit+, graph: '; id; '''!'; newline; newline; foreach .Class { if ~Specialization; then ~Specialization>Gen-spec structure~Generalization.():Class name; else 'Object'; endif; ' subclass: #'; id; newline; ' instanceVariableNames: '''; do :Attributes { if :Attribute type = 'instance' then id; ' '; else if :Attribute type = '' then id; ' '; endif; endif; } do ~Whole~Part.() { 'a'; id; ' '; } ''''; newline; ' classVariableNames: '''; do :Attributes { if :Attribute type = 'class' then id; ' '; endif; } ''''; newline; ' poolDictionaries: '''''; newline; ' category: '''; id;1; '''!'; newline; id; ' comment: '; newline; ''''; :Documentation; do ~Whole~Part.() { newline; 'Whole-Part Structure with '; id; ' has been added as instance variable a'; id; } '''!'; newline; newline; do :Services { if :Method type <> 'class'; then '!'; id;1; ' methodsFor: '''; if :Protocol = ''; then 'As yet unclassified'; else :Protocol; endif; '''!'; newline; newline; :Method name; if :Documentation <> ''; then newline; ' "'; :Documentation; '"'; endif; if :Method body <> ''; then newline; :Method body; endif; '! !'; newline; newline; endif; } '"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!'; newline; newline; id; ' class'; newline; ' instanceVariableNames: '''; do :Attributes { if :Attribute type = 'class-instance' then id; ' '; endif; } '''!'; newline; newline; do :Services { if :Method type = 'class'; then '!'; id;1; ' class methodsFor: '''; if :Protocol = ''; then 'As yet unclassified'; else :Protocol; endif; '''!'; newline; newline; :Method name; if :Documentation <> ''; then newline; ' "'; :Documentation; '"'; endif; if :Method body <> ''; then newline; :Method body; endif; '! !'; newline; newline; endif; } } foreach .Class-&-Object { if ~Specialization; then ~Specialization>Gen-spec structure~Generalization.():Class name; else 'Object'; endif; ' subclass: #'; id; newline; ' instanceVariableNames: '''; do :Attributes { if :Attribute type = 'instance' then id; ' '; else if :Attribute type = '' then id; ' '; endif; endif; } do ~Whole~Part.() { 'a'; id; ' '; } ''''; newline; ' classVariableNames: '''; do :Attributes { if :Attribute type = 'class' then id; ' '; endif; } ''''; newline; ' poolDictionaries: '''''; newline; ' category: '''; id;1; '''!'; newline; id; ' comment: '; newline; ''''; :Documentation; do ~Whole~Part.() { newline; 'Whole-Part Structure with '; id; ' has been added as instance variable a'; id; } '''!'; newline; newline; do :Services { if :Method type <> 'class'; then '!'; id;1; ' methodsFor: '''; if :Protocol = ''; then 'As yet unclassified'; else :Protocol; endif; '''!'; newline; newline; :Method name; if :Documentation <> ''; then newline; ' "'; :Documentation; '"'; endif; if :Method body <> ''; then newline; :Method body; endif; '! !'; newline; newline; endif; } '"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!'; newline; newline; id; ' class'; newline; ' instanceVariableNames: '''; do :Attributes { if :Attribute type = 'class-instance' then id; ' '; endif; } '''!'; newline; newline; do :Services { if :Method type = 'class'; then '!'; id;1; ' class methodsFor: '''; if :Protocol = ''; then 'As yet unclassified'; else :Protocol; endif; '''!'; newline; newline; :Method name; if :Documentation <> ''; then newline; ' "'; :Documentation; '"'; endif; if :Method body <> ''; then newline; :Method body; endif; '! !'; newline; newline; endif; } } '"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!'; newline; endreport