static void initPhpEntry (tagEntryInfo *const e, const tokenInfo *const token, const phpKind kind, const accessType access) { int parentKind = -1; const char *rootsep; vStringClear (FullScope); if (vStringLength (CurrentNamesapce) > 0) { parentKind = K_NAMESPACE; rootsep = scopeSeparatorFor (PhpKinds + parentKind, KIND_NULL); vStringCatS (FullScope, rootsep); vStringCat (FullScope, CurrentNamesapce); } initTagEntry (e, vStringValue (token->string), &(PhpKinds[kind])); e->lineNumber = token->lineNumber; e->filePosition = token->filePosition; if (access != ACCESS_UNDEFINED) e->extensionFields.access = accessToString (access); if (vStringLength (token->scope) > 0) { parentKind = token->parentKind; if (vStringLength (FullScope) > 0) { const char* sep; sep = phpScopeSeparatorFor (parentKind, K_NAMESPACE); vStringCatS (FullScope, sep); } else { rootsep = scopeSeparatorFor (PhpKinds + parentKind, KIND_NULL); vStringCatS (FullScope, rootsep); } vStringCat (FullScope, token->scope); } if (vStringLength (FullScope) > 0) { Assert (parentKind >= 0); vStringTerminate (FullScope); e->extensionFields.scopeKind = &(PhpKinds[parentKind]); e->extensionFields.scopeName = vStringValue (FullScope); } }
static const char *phpScopeSeparatorFor (int phpKind, int phpUpperScopeKind) { char letter; letter = PhpKinds[phpUpperScopeKind].letter; return scopeSeparatorFor (&(PhpKinds[phpKind]), letter); }
static const char *phpScopeSeparatorFor (int kind, int upperScopeKind) { return scopeSeparatorFor (getInputLanguage(), kind, upperScopeKind); }