nl_tokens: TODO ( drosen ) : use contextual SemanticMeaning .
pl_tokens: function getSymbolKind ( symbol , location ) { var flags = symbol . getFlags ( ) ; if ( flags & 32 /* Class */ ) return ts . getDeclarationOfKind ( symbol , 186 /* ClassExpression */ ) ? ScriptElementKind . localClassElement : ScriptElementKind . classElement ; if ( <mask> & 384 /* Enum */ ) return ScriptElementKind . enumElement ; if ( flags & 524288 /* TypeAlias */ ) return ScriptElementKind . typeElement ; if ( flags & 64 /* Interface */ ) return ScriptElementKind . interfaceElement ; if ( flags & 262144 /* TypeParameter */ ) return ScriptElementKind . typeParameterElement ; var result = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar ( symbol , flags , location ) ; if ( result === ScriptElementKind . unknown ) { if ( flags & 262144 /* TypeParameter */ ) return ScriptElementKind . typeParameterElement ; if ( flags & 8 /* EnumMember */ ) return ScriptElementKind . variableElement ; if ( flags & 8388608 /* Alias */ ) return ScriptElementKind . alias ; if ( flags & 1536 /* Module */ ) return ScriptElementKind . moduleElement ; } return result ; }