| 2256 | } |
| 2257 | |
| 2258 | int asCBuilder::RegisterUsingNamespace(asCScriptNode *node, asCScriptCode *file, asSNameSpace *ns) |
| 2259 | { |
| 2260 | asCScriptNode* n = node->firstChild; |
| 2261 | asCString name(&file->code[n->tokenPos], n->tokenLength); |
| 2262 | |
| 2263 | while (n->next) |
| 2264 | { |
| 2265 | n = n->next; |
| 2266 | name += "::" + asCString(&file->code[n->tokenPos], n->tokenLength); |
| 2267 | } |
| 2268 | |
| 2269 | asSNameSpace* visibleNamespace = engine->AddNameSpace(name.AddressOf()); |
| 2270 | asSMapNode<asSNameSpace*, asCArray<asSNameSpace*>>* cursor = 0; |
| 2271 | |
| 2272 | if (namespaceVisibility.MoveTo(&cursor, ns)) |
| 2273 | { |
| 2274 | asCArray<asSNameSpace*>& visibleNamespaces = namespaceVisibility.GetValue(cursor); |
| 2275 | if (!visibleNamespaces.Exists(visibleNamespace)) |
| 2276 | namespaceVisibility.GetValue(cursor).PushLast(visibleNamespace); |
| 2277 | } |
| 2278 | else |
| 2279 | { |
| 2280 | asCArray<asSNameSpace*> tmp; |
| 2281 | tmp.PushLast(visibleNamespace); |
| 2282 | namespaceVisibility.Insert(ns, tmp); |
| 2283 | } |
| 2284 | |
| 2285 | node->Destroy(engine); |
| 2286 | return 0; |
| 2287 | } |
| 2288 | |
| 2289 | int asCBuilder::RegisterMixinClass(asCScriptNode *node, asCScriptCode *file, asSNameSpace *ns) |
| 2290 | { |