Cface__TypeResolver.st
changeset 38 7654e5bd9818
parent 33 f87d54770abe
child 40 7d1e77b6115e
equal deleted inserted replaced
37:1ad7fb72801a 38:7654e5bd9818
    36     "Created: / 12-02-2008 / 23:48:03 / janfrog"
    36     "Created: / 12-02-2008 / 23:48:03 / janfrog"
    37 ! !
    37 ! !
    38 
    38 
    39 !TypeResolver methodsFor:'visiting'!
    39 !TypeResolver methodsFor:'visiting'!
    40 
    40 
    41 visit: aCNode
       
    42 
       
    43     super visit: aCNode.
       
    44     (aCNode respondsTo: #type) ifTrue:
       
    45         [aCNode type: aCNode type resolved]
       
    46 
       
    47     "Created: / 17-02-2008 / 17:56:42 / janfrog"
       
    48 !
       
    49 
       
    50 visitCTypedefNode: anObject
    41 visitCTypedefNode: anObject
    51 
    42 
    52     anObject type isCUserDefinedTypeNode ifTrue:[
    43     anObject type isCUserDefinedTypeNode ifTrue:[
    53         | realType |
    44         | realType |
    54 
    45 
    61 
    52 
    62     "Created: / 05-09-2012 / 11:37:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    53     "Created: / 05-09-2012 / 11:37:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    63 !
    54 !
    64 
    55 
    65 visitCUserDefinedTypeNode: anObject
    56 visitCUserDefinedTypeNode: anObject
    66 
       
    67     "/thisContext isRecursive ifTrue:[^self].
    57     "/thisContext isRecursive ifTrue:[^self].
    68 
    58 
       
    59     anObject type isNil ifTrue:[
       
    60         |type|
    69 
    61 
    70     anObject type 
    62         type := (typeMap at: anObject cName ifAbsent:[CPointerNode new type: CVoidNode new]).
    71         ifNil:
    63         self visit: type.
    72             [|type|
    64         anObject type: type
    73             type := (typeMap at: anObject cName ifAbsent:[CPointerNode new type: CVoidNode new]).
    65     ]
    74             self visit: type.
       
    75             anObject type: type]
       
    76 
    66 
    77     "Created: / 12-02-2008 / 23:45:17 / janfrog"
    67     "Created: / 12-02-2008 / 23:45:17 / janfrog"
    78     "Modified: / 17-02-2008 / 18:30:56 / janfrog"
    68     "Modified: / 17-02-2008 / 18:30:56 / janfrog"
    79     "Modified: / 09-07-2008 / 20:53:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
    69     "Modified: / 09-07-2008 / 20:53:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
       
    70     "Modified: / 06-07-2015 / 08:01:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    80 ! !
    71 ! !
    81 
    72 
    82 !TypeResolver class methodsFor:'documentation'!
    73 !TypeResolver class methodsFor:'documentation'!
    83 
    74 
    84 version
    75 version