TreeElement (@NotNull IElementType type, int start, int end) { CharSequence text = getInternedText(start, end); if (myWhitespaces.contains(type)) { return new PsiWhiteSpaceImpl(text); } if (type instanceof ICustomParsingType) { return (TreeElement)((ICustomParsingType)type).parse(text, myCharTable); } ASTFactory astFactory = getASTFactory(); if (type instanceof ILazyParseableElementType) { return createLazy((ILazyParseableElementType)type, text, astFactory); } if (astFactory != null) { TreeElement element = astFactory.createLeaf(type, text); if (element != null) return element; } return ASTFactory.leaf(type, text); }