1 #include "reader/reader.ih"
5 TypePath
Reader::readPath() {
7 SHORTCHAR kind
= readSChar();
8 SHORTCHAR
*buf
= new SHORTCHAR
[64]; // TypeName has a maximum of length 64 (including terminator).
10 for (i
= 0; kind
== Store::NEWEXT
; ++i
) {
12 std::string
name(buf
);
13 path
.push_back(fixTypeName(name
));
14 addPathComponent(i
== 0, path
[i
]);
15 // IF path[i] # elemTName THEN INC(i) END;
19 if (kind
== Store::NEWBASE
) {
21 std::string
name(buf
);
22 path
.push_back(fixTypeName(name
));
23 addPathComponent(i
== 0, path
[i
]);
25 } else if (kind
== Store::OLDTYPE
) {
28 d_typeList
[d_typeList
.size() - 1]->baseId
= id
;
31 path
.push_back(d_typeList
[id
]->name
);
32 id
= d_typeList
[id
]->baseId
;
33 // IF path[i] # elemTName THEN INC(i) END