PsiBuilder (ASTNode chameleon, Project project, ParserDefinition parserDefinition, Lexer lexer, CharSequence chars) { final PsiBuilder builder; if (lexer instanceof MasqueradingLexer) { builder = new MasqueradingPsiBuilderAdapter(project, parserDefinition, ((MasqueradingLexer)lexer), chameleon, chars); } else { builder = new PsiBuilderImpl(project, parserDefinition, lexer, chameleon, chars); } return builder; }