Cface__TypeCollector.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 17 Sep 2015 07:36:40 +0100
changeset 49 307d55f736ec
parent 41 edb5e4849b79
permissions -rw-r--r--
LLVM bindings: allow to specify path to llvm-config ..by setting LLVM_CONFIG variable when generating definitions for LLVM bindings. Example: make LVM_CONFIG=~/Projects/LLVM/sources1/build/Debug+Asserts/bin/llvm-config
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
32
d7464405cbda Package renamed from cvut:fel/cface to jv:cface
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19
diff changeset
     1
"{ Package: 'jv:cface' }"
1
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Cface }"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
CNodeVisitor subclass:#TypeCollector
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:'typeMap'
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'Cface-Visitors'
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!TypeCollector class methodsFor:'documentation'!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
history
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
    "Created: / 12-11-2007 / 08:41:12 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
    "Created: #typeMap / 12-11-2007 / 08:43:31 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
    "Created: #typeMap: / 12-11-2007 / 08:43:31 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
    "Created: #parseTree / 12-11-2007 / 08:43:31 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
    "Created: #parseTree: / 12-11-2007 / 08:43:31 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
    "Created: #visitSequenceableCollection:with: / 12-11-2007 / 08:44:18 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
    "Created: #visitConstNode: / 12-11-2007 / 08:44:23 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
    "Created: #visitArrayNode: / 12-11-2007 / 08:44:23 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
    "Created: #visitEnumFieldNode: / 12-11-2007 / 08:44:23 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
    "Created: #visitEnumNode: / 12-11-2007 / 08:44:24 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
    "Created: #visitFileNode: / 12-11-2007 / 08:44:24 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
    "Created: #visitFunctionNode: / 12-11-2007 / 08:44:24 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
    "Created: #visitPointerNode: / 12-11-2007 / 08:44:24 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
    "Created: #visitStructFieldNode: / 12-11-2007 / 08:44:24 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    "Created: #visitStructNode: / 12-11-2007 / 08:44:24 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
    "Created: #visitTypeDefNode: / 12-11-2007 / 08:44:24 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    "Created: #visitUnionFieldNode: / 12-11-2007 / 08:44:24 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
    "Created: #visitUnionNode: / 12-11-2007 / 08:44:24 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
    "Created: #visitParseTree: / 12-11-2007 / 08:44:24 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
    "Created: #visitIdNode: / 12-11-2007 / 08:44:24 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
    "Created: #initialize / 12-11-2007 / 08:45:48 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
    "Created: #new / 12-11-2007 / 08:45:48 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
    "Created: #on: / 12-11-2007 / 08:46:02 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    "Created: #find: / 12-11-2007 / 09:08:54 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    "Modified: #find: / 19-11-2007 / 09:48:44 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
! !
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
!TypeCollector class methodsFor:'instance creation'!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
new
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
    ^ self basicNew initialize.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    "Created: / 12-11-2007 / 08:45:48 / haja"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
! !
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
!TypeCollector methodsFor:'accessing'!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
typeMap
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
    ^ typeMap
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    "Created: / 12-02-2008 / 23:43:44 / janfrog"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
! !
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
!TypeCollector methodsFor:'initialization'!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
initialize
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
    super initialize.
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    typeMap := Dictionary new
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
    "Created: / 12-02-2008 / 22:55:40 / janfrog"
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
! !
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
!TypeCollector methodsFor:'visiting'!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
5
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    71
visitCDerivedTypeNode: node
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    72
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    73
    | oldNode |
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    74
    oldNode := typeMap at: node cName ifAbsent:nil.
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    75
    oldNode
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    76
        ifNil:
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    77
            [typeMap at: node cName put: node]
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    78
        ifNotNil:
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    79
            [node isForeign ifFalse:
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    80
                [typeMap at: node cName put: node]]
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    81
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    82
    "Created: / 09-07-2008 / 20:46:41 / Jan Vrany <vranyj1@fel.cvut.cz>"
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    83
!
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    84
1
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
visitCEnumNode: anObject
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
5
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    87
    self visitCDerivedTypeNode: anObject
1
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
    "Created: / 12-02-2008 / 23:44:04 / janfrog"
5
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    90
    "Modified: / 04-07-2008 / 15:02:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
visitCStructNode: anObject
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
5
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    95
    self visitCDerivedTypeNode: anObject
1
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
    "Created: / 12-02-2008 / 23:44:14 / janfrog"
5
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    98
    "Modified: / 04-07-2008 / 15:02:35 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
5
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   101
visitCTypedefNode: node
1
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
5
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   103
    | oldNode |
6
ae25dce94003 Added SVNMapping. Now it is able to parse libsvn.def
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   104
    node cName = node type cName ifTrue:[^self].
5
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   105
    oldNode := typeMap at: node cName ifAbsent:nil.
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   106
    oldNode
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   107
        ifNil:
41
edb5e4849b79 Type resolving reintroduced again.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   108
            [typeMap at: node cName put: node]
5
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   109
        ifNotNil:
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   110
            [node isForeign ifFalse:
41
edb5e4849b79 Type resolving reintroduced again.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   111
                    [typeMap at: node cName put: node]]
1
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
    "Created: / 12-02-2008 / 22:55:53 / janfrog"
6
ae25dce94003 Added SVNMapping. Now it is able to parse libsvn.def
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
   114
    "Modified: / 10-07-2008 / 20:10:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
41
edb5e4849b79 Type resolving reintroduced again.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   115
    "Modified: / 06-07-2015 / 22:52:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
visitCUnionNode: anObject
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
5
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   120
    self visitCDerivedTypeNode: anObject
1
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
    "Created: / 12-02-2008 / 23:44:09 / janfrog"
5
c110eef5b9ef - externalization of libraryName (now supports unix & win32 simultaneously)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
   123
    "Modified: / 04-07-2008 / 15:02:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
1
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
! !
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
!TypeCollector class methodsFor:'documentation'!
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
version
19
1297bf936bfb Some fixes for modern GCC XML
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   129
    ^ '$Id$'
14
1f730d82496e Added version_SVN methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
   130
!
1f730d82496e Added version_SVN methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
   131
1f730d82496e Added version_SVN methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
   132
version_SVN
1f730d82496e Added version_SVN methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6
diff changeset
   133
    ^ '$Id$'
1
b6c0180314d1 Initial import
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
! !
41
edb5e4849b79 Type resolving reintroduced again.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 32
diff changeset
   135