equal
deleted
inserted
replaced
|
1 "{ Package: 'cvut:fel/cface' }" |
|
2 |
|
3 "{ NameSpace: Cface }" |
|
4 |
|
5 CNodeVisitor subclass:#TypeResolver |
|
6 instanceVariableNames:'typeMap' |
|
7 classVariableNames:'' |
|
8 poolDictionaries:'' |
|
9 category:'Cface-Visitors' |
|
10 ! |
|
11 |
|
12 |
|
13 !TypeResolver methodsFor:'accessing'! |
|
14 |
|
15 typeMap |
|
16 ^ typeMap |
|
17 |
|
18 "Created: / 12-02-2008 / 23:44:35 / janfrog" |
|
19 ! |
|
20 |
|
21 typeMap:something |
|
22 typeMap := something. |
|
23 |
|
24 "Created: / 12-02-2008 / 23:44:35 / janfrog" |
|
25 ! ! |
|
26 |
|
27 !TypeResolver methodsFor:'processing'! |
|
28 |
|
29 process: aCNode |
|
30 |
|
31 typeMap := TypeCollector new |
|
32 process: aCNode; |
|
33 typeMap. |
|
34 ^super process: aCNode |
|
35 |
|
36 "Created: / 12-02-2008 / 23:48:03 / janfrog" |
|
37 ! ! |
|
38 |
|
39 !TypeResolver methodsFor:'visiting'! |
|
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 visitCUserDefinedTypeNode: anObject |
|
51 |
|
52 anObject type ifNil: |
|
53 [|type| |
|
54 type := (typeMap at: anObject cName). |
|
55 self visit: type. |
|
56 anObject type: type] |
|
57 |
|
58 "Created: / 12-02-2008 / 23:45:17 / janfrog" |
|
59 "Modified: / 17-02-2008 / 18:30:56 / janfrog" |
|
60 ! ! |
|
61 |
|
62 !TypeResolver class methodsFor:'documentation'! |
|
63 |
|
64 version |
|
65 ^ '$Header: /opt/data/cvs/cvut-fel/cface/Cface__TypeResolver.st,v 1.1 2008/02/26 16:00:57 vranyj1 Exp $' |
|
66 ! ! |