--- a/MCStReader.st Sat Aug 20 13:43:21 2011 +0200
+++ b/MCStReader.st Sat Aug 20 13:43:28 2011 +0200
@@ -17,29 +17,40 @@
!MCStReader methodsFor:'as yet unclassified'!
addDefinitionsFromDoit: aString
- (MCDoItParser forDoit: aString) ifNotNilDo:
- [:parser |
+ | parser |
+ (parser := MCDoItParser forDoit: aString) ifNotNil:
+ [
parser addDefinitionsTo: definitions]
!
categoryFromDoIt: aString
| tokens |
- tokens _ Scanner new scanTokens: aString.
+ tokens := Scanner new scanTokens: aString.
tokens size = 3 ifFalse: [self error: 'Unrecognized category definition'].
^ tokens at: 3
!
classDefinitionFrom: aPseudoClass
- | tokens |
- tokens _ Scanner new scanTokens: aPseudoClass definition.
- tokens size = 11 ifFalse: [self error: 'Unrecognized class definition'].
+ | tokens traitCompositionString lastIndex classTraitCompositionString |
+ tokens := Scanner new scanTokens: aPseudoClass definition.
+ traitCompositionString := ((ReadStream on: aPseudoClass definition)
+ match: 'uses:';
+ upToAll: 'instanceVariableNames:') withBlanksTrimmed.
+ classTraitCompositionString := ((ReadStream on: aPseudoClass metaClass definition asString)
+ match: 'uses:';
+ upToAll: 'instanceVariableNames:') withBlanksTrimmed.
+ traitCompositionString isEmpty ifTrue: [traitCompositionString := '{}'].
+ classTraitCompositionString isEmpty ifTrue: [classTraitCompositionString := '{}'].
+ lastIndex := tokens size.
^ MCClassDefinition
name: (tokens at: 3)
superclassName: (tokens at: 1)
- category: (tokens at: 11)
- instVarNames: ((tokens at: 5) findTokens: ' ')
- classVarNames: ((tokens at: 7) findTokens: ' ')
- poolDictionaryNames: ((tokens at: 9) findTokens: ' ')
+ traitComposition: traitCompositionString
+ classTraitComposition: classTraitCompositionString
+ category: (tokens at: lastIndex)
+ instVarNames: ((tokens at: lastIndex - 6) findTokens: ' ')
+ classVarNames: ((tokens at: lastIndex - 4) findTokens: ' ')
+ poolDictionaryNames: ((tokens at: lastIndex - 2) findTokens: ' ')
classInstVarNames: (self classInstVarNamesFor: aPseudoClass)
type: (self typeOfSubclass: (tokens at: 2))
comment: (self commentFor: aPseudoClass)
@@ -48,16 +59,17 @@
classInstVarNamesFor: aPseudoClass
| tokens |
+
+ self flag: #traits.
aPseudoClass metaClass hasDefinition ifFalse: [^ #()].
-
- tokens _ Scanner new scanTokens: aPseudoClass metaClass definition.
- tokens size = 4 ifFalse: [self error: 'Unrecognized metaclass definition'].
+ tokens := Scanner new scanTokens: aPseudoClass metaClass definition.
+ "tokens size = 4 ifFalse: [self error: 'Unrecognized metaclass definition']."
^ tokens last findTokens: ' '
!
commentFor: aPseudoClass
| comment |
- comment _ aPseudoClass organization classComment.
+ comment := aPseudoClass organization classComment.
^ comment asString = ''
ifTrue: [comment]
ifFalse: [comment string]
@@ -65,7 +77,7 @@
commentStampFor: aPseudoClass
| comment |
- comment _ aPseudoClass organization classComment.
+ comment := aPseudoClass organization classComment.
^ [comment stamp] on: MessageNotUnderstood do: [nil]
!
@@ -83,7 +95,7 @@
systemOrganizationFromRecords: changeRecords
| categories |
- categories _ changeRecords
+ categories := changeRecords
select: [:ea | 'SystemOrganization*' match: ea string]
thenCollect: [:ea | (self categoryFromDoIt: ea string)].
^ categories isEmpty ifFalse: [MCOrganizationDefinition categories: categories asArray]
@@ -104,11 +116,11 @@
loadDefinitions
| filePackage |
- filePackage _
+ filePackage :=
FilePackage new
fullName: 'ReadStream';
fileInFrom: self readStream.
- definitions _ OrderedCollection new.
+ definitions := OrderedCollection new.
filePackage classes do:
[:pseudoClass |
pseudoClass hasDefinition
@@ -131,5 +143,13 @@
!MCStReader class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/goodies/monticello/MCStReader.st,v 1.1 2006-11-22 13:06:33 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/goodies/monticello/MCStReader.st,v 1.2 2011-08-20 11:43:28 cg Exp $'
+!
+
+version_CVS
+ ^ '$Header: /cvs/stx/stx/goodies/monticello/MCStReader.st,v 1.2 2011-08-20 11:43:28 cg Exp $'
+!
+
+version_SVN
+ ^ '§Id: MCStReader.st 17 2010-10-13 12:07:52Z vranyj1 §'
! !