int (@NotNull IElementType tokenType, int state, boolean isRestartableState) { if (tokenType instanceof TextMateElementType) { synchronized (tokenTypeMap) { if (tokenTypeMap.containsKey(tokenType)) { return tokenTypeMap.getInt(tokenType) * (isRestartableState ? 1 : -1); } int data = tokenTypes.size() + 1; tokenTypes.add((TextMateElementType)tokenType); tokenTypeMap.put((TextMateElementType)tokenType, data); return isRestartableState ? data : -data; } } return 0; }