From ace8d2de57cd0e62cb66863e4fad27e5d223ea79 Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Mon, 12 May 2025 19:13:17 +0200 Subject: [PATCH] [java parser] get rid of unnecessary parameters WhiteSpaceAndCommentSetHolder is a singleton, so we don't need to pass it as an argument GitOrigin-RevId: 16f6cc5b9049d5685c9a50f913c645cbe4e05303 --- .../java/syntax/parser/DeclarationParser.kt | 41 +++++---- .../intellij/java/syntax/parser/FileParser.kt | 22 +++-- .../java/syntax/parser/JavaParserUtil.kt | 9 +- .../java/syntax/parser/ModuleParser.kt | 7 +- .../java/syntax/parser/PatternParser.kt | 10 +-- .../syntax/parser/PrattExpressionParser.kt | 6 +- .../java/syntax/parser/StatementParser.kt | 83 +++++++++---------- 7 files changed, 85 insertions(+), 93 deletions(-) diff --git a/java/java-syntax/src/com/intellij/java/syntax/parser/DeclarationParser.kt b/java/java-syntax/src/com/intellij/java/syntax/parser/DeclarationParser.kt index 76f94df78182..b0b52c4e8d83 100644 --- a/java/java-syntax/src/com/intellij/java/syntax/parser/DeclarationParser.kt +++ b/java/java-syntax/src/com/intellij/java/syntax/parser/DeclarationParser.kt @@ -9,7 +9,6 @@ import com.intellij.java.syntax.element.SyntaxElementTypes.CLASS_KEYWORD_BIT_SET import com.intellij.java.syntax.element.SyntaxElementTypes.KEYWORD_BIT_SET import com.intellij.java.syntax.element.SyntaxElementTypes.MODIFIER_BIT_SET import com.intellij.java.syntax.element.SyntaxElementTypes.PRIMITIVE_TYPE_BIT_SET -import com.intellij.java.syntax.element.WhiteSpaceAndCommentSetHolder import com.intellij.platform.syntax.SyntaxElementType import com.intellij.platform.syntax.SyntaxElementTypeSet import com.intellij.platform.syntax.parser.SyntaxTreeBuilder @@ -31,8 +30,6 @@ open class DeclarationParser(private val myParser: JavaParser) { enum class Context { FILE, CLASS, CODE_BLOCK, ANNOTATION_INTERFACE, JSHELL } - - private val myWhiteSpaceAndCommentSetHolder = WhiteSpaceAndCommentSetHolder private val languageLevel: LanguageLevel get() = myParser.languageLevel @@ -117,7 +114,7 @@ open class DeclarationParser(private val myParser: JavaParser) { parseClassBodyWithBraces(builder, isAnnotation, isEnum) } - JavaParserUtil.done(declaration, JavaSyntaxElementType.CLASS, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(declaration, JavaSyntaxElementType.CLASS, languageLevel) return declaration } @@ -174,10 +171,10 @@ open class DeclarationParser(private val myParser: JavaParser) { if (builder.tokenType === JavaSyntaxTokenType.LBRACE) { val constantInit = builder.mark() parseClassBodyWithBraces(builder, false, false) - JavaParserUtil.done(constantInit, JavaSyntaxElementType.ENUM_CONSTANT_INITIALIZER, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(constantInit, JavaSyntaxElementType.ENUM_CONSTANT_INITIALIZER, languageLevel) } - JavaParserUtil.done(constant, JavaSyntaxElementType.ENUM_CONSTANT, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(constant, JavaSyntaxElementType.ENUM_CONSTANT, languageLevel) return constant } else { @@ -282,7 +279,7 @@ open class DeclarationParser(private val myParser: JavaParser) { error.errorBefore(message("unexpected.token"), codeBlock) } - JavaParserUtil.done(declaration, JavaSyntaxElementType.CLASS_INITIALIZER, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(declaration, JavaSyntaxElementType.CLASS_INITIALIZER, languageLevel) return declaration } @@ -456,7 +453,7 @@ open class DeclarationParser(private val myParser: JavaParser) { } } - JavaParserUtil.done(modList, JavaSyntaxElementType.MODIFIER_LIST, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(modList, JavaSyntaxElementType.MODIFIER_LIST, languageLevel) return modList to isEmpty } @@ -513,8 +510,8 @@ open class DeclarationParser(private val myParser: JavaParser) { JavaParserUtil.done(marker = declaration, type = if (anno) JavaSyntaxElementType.ANNOTATION_METHOD else JavaSyntaxElementType.METHOD, - languageLevel = languageLevel, - commentSetHolder = myWhiteSpaceAndCommentSetHolder) + languageLevel = languageLevel + ) return declaration } @@ -634,7 +631,7 @@ open class DeclarationParser(private val myParser: JavaParser) { marker.error(error) } - JavaParserUtil.done(elementList, type.nodeType, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(elementList, type.nodeType, languageLevel) } fun parseParameter( @@ -729,7 +726,7 @@ open class DeclarationParser(private val myParser: JavaParser) { val expr = myParser.expressionParser.parse(builder) if (expr != null && JavaParserUtil.exprType(expr) === JavaSyntaxElementType.THIS_EXPRESSION) { mark.drop() - JavaParserUtil.done(param, JavaSyntaxElementType.RECEIVER_PARAMETER, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(param, JavaSyntaxElementType.RECEIVER_PARAMETER, languageLevel) return param } @@ -740,7 +737,7 @@ open class DeclarationParser(private val myParser: JavaParser) { if (builder.expect(JavaSyntaxTokenType.IDENTIFIER)) { if (type === JavaSyntaxElementType.PARAMETER || type === JavaSyntaxElementType.RECORD_COMPONENT) { eatBrackets(builder, null) - JavaParserUtil.done(param, type, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(param, type, languageLevel) return param } } @@ -756,7 +753,7 @@ open class DeclarationParser(private val myParser: JavaParser) { } } - JavaParserUtil.done(param, JavaSyntaxElementType.RESOURCE_VARIABLE, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(param, JavaSyntaxElementType.RESOURCE_VARIABLE, languageLevel) return param } @@ -803,7 +800,7 @@ open class DeclarationParser(private val myParser: JavaParser) { if (builder.tokenType !== JavaSyntaxTokenType.COMMA) { break } - JavaParserUtil.done(variable, varType, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(variable, varType, languageLevel) builder.advanceLexer() if (builder.tokenType !== JavaSyntaxTokenType.IDENTIFIER) { @@ -842,7 +839,7 @@ open class DeclarationParser(private val myParser: JavaParser) { } if (openMarker) { - JavaParserUtil.done(variable, varType, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(variable, varType, languageLevel) } return declaration @@ -917,7 +914,7 @@ open class DeclarationParser(private val myParser: JavaParser) { parseAnnotationParameterList(builder) - JavaParserUtil.done(anno, JavaSyntaxElementType.ANNOTATION, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(anno, JavaSyntaxElementType.ANNOTATION, languageLevel) return anno } @@ -927,13 +924,13 @@ open class DeclarationParser(private val myParser: JavaParser) { if (!builder.expect(JavaSyntaxTokenType.LPARENTH) || builder.expect(JavaSyntaxTokenType.RPARENTH) ) { - JavaParserUtil.done(list, JavaSyntaxElementType.ANNOTATION_PARAMETER_LIST, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(list, JavaSyntaxElementType.ANNOTATION_PARAMETER_LIST, languageLevel) return } if (builder.tokenType == null) { JavaParserUtil.error(builder, message("expected.parameter.or.rparen")) - JavaParserUtil.done(list, JavaSyntaxElementType.ANNOTATION_PARAMETER_LIST, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(list, JavaSyntaxElementType.ANNOTATION_PARAMETER_LIST, languageLevel) return } var elementMarker = parseAnnotationElement(builder) @@ -970,7 +967,7 @@ open class DeclarationParser(private val myParser: JavaParser) { } } - JavaParserUtil.done(list, JavaSyntaxElementType.ANNOTATION_PARAMETER_LIST, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(list, JavaSyntaxElementType.ANNOTATION_PARAMETER_LIST, languageLevel) } private fun parseAnnotationElement(builder: SyntaxTreeBuilder): SyntaxTreeBuilder.Marker? { @@ -982,7 +979,7 @@ open class DeclarationParser(private val myParser: JavaParser) { return null } if (builder.tokenType !== JavaSyntaxTokenType.EQ) { - JavaParserUtil.done(pair, JavaSyntaxElementType.NAME_VALUE_PAIR, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(pair, JavaSyntaxElementType.NAME_VALUE_PAIR, languageLevel) return pair } @@ -994,7 +991,7 @@ open class DeclarationParser(private val myParser: JavaParser) { valueMarker = parseAnnotationValue(builder) if (valueMarker == null) JavaParserUtil.error(builder, message("expected.value")) - JavaParserUtil.done(pair, JavaSyntaxElementType.NAME_VALUE_PAIR, languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(pair, JavaSyntaxElementType.NAME_VALUE_PAIR, languageLevel) return pair } diff --git a/java/java-syntax/src/com/intellij/java/syntax/parser/FileParser.kt b/java/java-syntax/src/com/intellij/java/syntax/parser/FileParser.kt index 0894d72c8b5d..24d71ca30750 100644 --- a/java/java-syntax/src/com/intellij/java/syntax/parser/FileParser.kt +++ b/java/java-syntax/src/com/intellij/java/syntax/parser/FileParser.kt @@ -70,13 +70,18 @@ open class FileParser(private val myParser: JavaParser) { invalidElements?.error(bundle.message(errorMessageKey)) if (impListInfo.second && firstDeclarationOk == true) { - impListInfo.first.setCustomEdgeTokenBinders(myWhiteSpaceAndCommentSetHolder.getPrecedingCommentBinder(myParser.languageLevel), - null) // pass comments behind fake import list - firstDeclaration!!.setCustomEdgeTokenBinders(myWhiteSpaceAndCommentSetHolder.getSpecialPrecedingCommentBinder(myParser.languageLevel), null) + impListInfo.first.setCustomEdgeTokenBinders( // pass comments behind fake import list + left = WhiteSpaceAndCommentSetHolder.getPrecedingCommentBinder(myParser.languageLevel), + right = null + ) + firstDeclaration!!.setCustomEdgeTokenBinders( + left = WhiteSpaceAndCommentSetHolder.getSpecialPrecedingCommentBinder(myParser.languageLevel), + right = null + ) } if (isImplicitClass) { val beforeFirst = firstDeclaration!!.precede() - JavaParserUtil.done(beforeFirst, JavaSyntaxElementType.IMPLICIT_CLASS, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(beforeFirst, JavaSyntaxElementType.IMPLICIT_CLASS, myParser.languageLevel) } } @@ -100,7 +105,7 @@ open class FileParser(private val myParser: JavaParser) { if (!builder.expect(JavaSyntaxTokenType.PACKAGE_KEYWORD)) { val modList = builder.mark() myParser.declarationParser.parseAnnotations(builder) - JavaParserUtil.done(modList, JavaSyntaxElementType.MODIFIER_LIST, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(modList, JavaSyntaxElementType.MODIFIER_LIST, myParser.languageLevel) if (!builder.expect(JavaSyntaxTokenType.PACKAGE_KEYWORD)) { statement.rollbackTo() return @@ -115,7 +120,7 @@ open class FileParser(private val myParser: JavaParser) { JavaParserUtil.semicolon(builder) - JavaParserUtil.done(statement, JavaSyntaxElementType.PACKAGE_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(statement, JavaSyntaxElementType.PACKAGE_STATEMENT, myParser.languageLevel) } protected fun parseImportList( @@ -159,7 +164,7 @@ open class FileParser(private val myParser: JavaParser) { list = precede } - JavaParserUtil.done(list, JavaSyntaxElementType.IMPORT_LIST, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(list, JavaSyntaxElementType.IMPORT_LIST, myParser.languageLevel) return Pair(list, isEmpty) } @@ -191,7 +196,7 @@ open class FileParser(private val myParser: JavaParser) { JavaParserUtil.semicolon(builder) } - JavaParserUtil.done(statement, type, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(statement, type, myParser.languageLevel) return statement } @@ -220,4 +225,3 @@ val IMPORT_LIST_STOPPER_SET: SyntaxElementTypeSet = private val IMPLICIT_CLASS_INDICATORS: SyntaxElementTypeSet = syntaxElementTypeSetOf(JavaSyntaxElementType.METHOD, JavaSyntaxElementType.FIELD, JavaSyntaxElementType.CLASS_INITIALIZER) -private val myWhiteSpaceAndCommentSetHolder = WhiteSpaceAndCommentSetHolder diff --git a/java/java-syntax/src/com/intellij/java/syntax/parser/JavaParserUtil.kt b/java/java-syntax/src/com/intellij/java/syntax/parser/JavaParserUtil.kt index f19eaf01d836..c8b21a79af81 100644 --- a/java/java-syntax/src/com/intellij/java/syntax/parser/JavaParserUtil.kt +++ b/java/java-syntax/src/com/intellij/java/syntax/parser/JavaParserUtil.kt @@ -22,18 +22,17 @@ object JavaParserUtil { marker: SyntaxTreeBuilder.Marker, type: SyntaxElementType, languageLevel: LanguageLevel, - commentSetHolder: WhiteSpaceAndCommentSetHolder, ) { marker.done(type) val left = - if (commentSetHolder.precedingCommentSet.contains(type)) - commentSetHolder.getPrecedingCommentBinder(languageLevel) + if (WhiteSpaceAndCommentSetHolder.precedingCommentSet.contains(type)) + WhiteSpaceAndCommentSetHolder.getPrecedingCommentBinder(languageLevel) else null val right = - if (commentSetHolder.trailingCommentSet.contains(type)) - commentSetHolder.trailingCommentBinder + if (WhiteSpaceAndCommentSetHolder.trailingCommentSet.contains(type)) + WhiteSpaceAndCommentSetHolder.trailingCommentBinder else null diff --git a/java/java-syntax/src/com/intellij/java/syntax/parser/ModuleParser.kt b/java/java-syntax/src/com/intellij/java/syntax/parser/ModuleParser.kt index 539b4fc7cd4f..eecc9956198e 100644 --- a/java/java-syntax/src/com/intellij/java/syntax/parser/ModuleParser.kt +++ b/java/java-syntax/src/com/intellij/java/syntax/parser/ModuleParser.kt @@ -5,7 +5,6 @@ import com.intellij.java.syntax.JavaSyntaxBundle.message import com.intellij.java.syntax.element.JavaSyntaxElementType import com.intellij.java.syntax.element.JavaSyntaxTokenType import com.intellij.java.syntax.element.SyntaxElementTypes -import com.intellij.java.syntax.element.WhiteSpaceAndCommentSetHolder import com.intellij.openapi.util.NlsContexts import com.intellij.platform.syntax.SyntaxElementType import com.intellij.platform.syntax.parser.SyntaxTreeBuilder @@ -29,7 +28,7 @@ class ModuleParser(private val myParser: JavaParser) { mapAndAdvance(builder, JavaSyntaxTokenType.OPEN_KEYWORD) text = builder.tokenText } - JavaParserUtil.done(modifierList, JavaSyntaxElementType.MODIFIER_LIST, myParser.languageLevel, WhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(modifierList, JavaSyntaxElementType.MODIFIER_LIST, myParser.languageLevel) if (JavaKeywords.MODULE == text) { mapAndAdvance(builder, JavaSyntaxTokenType.MODULE_KEYWORD) @@ -63,7 +62,7 @@ class ModuleParser(private val myParser: JavaParser) { parseModuleContent(builder) } - JavaParserUtil.done(module, JavaSyntaxElementType.MODULE, myParser.languageLevel, WhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(module, JavaSyntaxElementType.MODULE, myParser.languageLevel) if (builder.tokenType != null) { parseExtras(builder, message("unexpected.tokens")) @@ -162,7 +161,7 @@ class ModuleParser(private val myParser: JavaParser) { } break } - JavaParserUtil.done(modifierList, JavaSyntaxElementType.MODIFIER_LIST, myParser.languageLevel, WhiteSpaceAndCommentSetHolder) + JavaParserUtil.done(modifierList, JavaSyntaxElementType.MODIFIER_LIST, myParser.languageLevel) if (parseNameRef(builder) != null) { JavaParserUtil.semicolon(builder) diff --git a/java/java-syntax/src/com/intellij/java/syntax/parser/PatternParser.kt b/java/java-syntax/src/com/intellij/java/syntax/parser/PatternParser.kt index 84fdb265ce66..5ab78f128756 100644 --- a/java/java-syntax/src/com/intellij/java/syntax/parser/PatternParser.kt +++ b/java/java-syntax/src/com/intellij/java/syntax/parser/PatternParser.kt @@ -4,7 +4,6 @@ package com.intellij.java.syntax.parser import com.intellij.java.syntax.JavaSyntaxBundle.message import com.intellij.java.syntax.element.JavaSyntaxElementType import com.intellij.java.syntax.element.JavaSyntaxTokenType -import com.intellij.java.syntax.element.WhiteSpaceAndCommentSetHolder import com.intellij.java.syntax.parser.JavaParserUtil.done import com.intellij.java.syntax.parser.JavaParserUtil.emptyElement import com.intellij.java.syntax.parser.JavaParserUtil.error @@ -16,7 +15,6 @@ import com.intellij.platform.syntax.util.parser.SyntaxBuilderUtil.expect import org.jetbrains.annotations.Contract class PatternParser(private val myParser: JavaParser) { - private val myWhiteSpaceAndCommentSetHolder = WhiteSpaceAndCommentSetHolder /** * Checks whether given token sequence can be parsed as a pattern. @@ -34,7 +32,7 @@ class PatternParser(private val myParser: JavaParser) { if (builder.tokenType === JavaSyntaxTokenType.IDENTIFIER && "_" == builder.tokenText) { emptyElement(builder, JavaSyntaxElementType.TYPE) builder.advanceLexer() - done(patternStart, JavaSyntaxElementType.UNNAMED_PATTERN, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(patternStart, JavaSyntaxElementType.UNNAMED_PATTERN, myParser.languageLevel) return true } patternStart.rollbackTo() @@ -145,16 +143,16 @@ class PatternParser(private val myParser: JavaParser) { if (isRecord) { patternVariable.drop() - done(pattern, JavaSyntaxElementType.DECONSTRUCTION_PATTERN, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(pattern, JavaSyntaxElementType.DECONSTRUCTION_PATTERN, myParser.languageLevel) } else { if (hasIdentifier) { - done(patternVariable, JavaSyntaxElementType.PATTERN_VARIABLE, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(patternVariable, JavaSyntaxElementType.PATTERN_VARIABLE, myParser.languageLevel) } else { patternVariable.drop() } - done(pattern, JavaSyntaxElementType.TYPE_TEST_PATTERN, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(pattern, JavaSyntaxElementType.TYPE_TEST_PATTERN, myParser.languageLevel) } return pattern } diff --git a/java/java-syntax/src/com/intellij/java/syntax/parser/PrattExpressionParser.kt b/java/java-syntax/src/com/intellij/java/syntax/parser/PrattExpressionParser.kt index b0164527b256..4ee9f178d08e 100644 --- a/java/java-syntax/src/com/intellij/java/syntax/parser/PrattExpressionParser.kt +++ b/java/java-syntax/src/com/intellij/java/syntax/parser/PrattExpressionParser.kt @@ -8,7 +8,6 @@ import com.intellij.java.syntax.element.JavaSyntaxTokenType import com.intellij.java.syntax.element.SyntaxElementTypes import com.intellij.java.syntax.element.SyntaxElementTypes.MODIFIER_BIT_SET import com.intellij.java.syntax.element.SyntaxElementTypes.PRIMITIVE_TYPE_BIT_SET -import com.intellij.java.syntax.element.WhiteSpaceAndCommentSetHolder import com.intellij.java.syntax.parser.ExpressionParser.Companion.FORBID_LAMBDA_MASK import com.intellij.java.syntax.parser.JavaParserUtil.done import com.intellij.java.syntax.parser.JavaParserUtil.emptyElement @@ -32,7 +31,6 @@ import org.jetbrains.annotations.PropertyKey @ApiStatus.Experimental class PrattExpressionParser(private val myParser: JavaParser) { private val ourInfixParsers: MutableMap - private val myWhiteSpaceAndCommentSetHolder = WhiteSpaceAndCommentSetHolder init { ourInfixParsers = HashMap() @@ -875,7 +873,7 @@ class PrattExpressionParser(private val myParser: JavaParser) { if (right == null) { error(builder, message("expected.expression")) } - done(beforeLhs, JavaSyntaxElementType.ASSIGNMENT_EXPRESSION, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(beforeLhs, JavaSyntaxElementType.ASSIGNMENT_EXPRESSION, myParser.languageLevel) } } @@ -904,7 +902,7 @@ class PrattExpressionParser(private val myParser: JavaParser) { done(beforeLhs, if (operandCount > 2) JavaSyntaxElementType.POLYADIC_EXPRESSION else - JavaSyntaxElementType.BINARY_EXPRESSION, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + JavaSyntaxElementType.BINARY_EXPRESSION, myParser.languageLevel) } } diff --git a/java/java-syntax/src/com/intellij/java/syntax/parser/StatementParser.kt b/java/java-syntax/src/com/intellij/java/syntax/parser/StatementParser.kt index f7efd5952c60..895edc9bba03 100644 --- a/java/java-syntax/src/com/intellij/java/syntax/parser/StatementParser.kt +++ b/java/java-syntax/src/com/intellij/java/syntax/parser/StatementParser.kt @@ -5,7 +5,6 @@ import com.intellij.java.syntax.JavaSyntaxBundle.message import com.intellij.java.syntax.element.JavaSyntaxElementType import com.intellij.java.syntax.element.JavaSyntaxTokenType import com.intellij.java.syntax.element.SyntaxElementTypes -import com.intellij.java.syntax.element.WhiteSpaceAndCommentSetHolder import com.intellij.java.syntax.parser.JavaParserUtil.done import com.intellij.java.syntax.parser.JavaParserUtil.error import com.intellij.java.syntax.parser.JavaParserUtil.expectOrError @@ -35,8 +34,6 @@ open class StatementParser( TILL_FIRST, TILL_LAST } - private val myWhiteSpaceAndCommentSetHolder = WhiteSpaceAndCommentSetHolder - @JvmOverloads fun parseCodeBlock(builder: SyntaxTreeBuilder, isStatement: Boolean = false): SyntaxTreeBuilder.Marker? { if (builder.tokenType !== JavaSyntaxTokenType.LBRACE) return null @@ -59,7 +56,7 @@ open class StatementParser( val greedyBlock = !expectOrError(builder, JavaSyntaxTokenType.RBRACE, "expected.rbrace") builder.tokenType // eat spaces - done(codeBlock, JavaSyntaxElementType.CODE_BLOCK, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(codeBlock, JavaSyntaxElementType.CODE_BLOCK, myParser.languageLevel) if (greedyBlock) { codeBlock.setCustomEdgeTokenBinders(null, greedyRightBinder()) } @@ -143,7 +140,7 @@ open class StatementParser( else if (tokenType === JavaSyntaxTokenType.SEMICOLON) { val empty = builder.mark() builder.advanceLexer() - done(empty, JavaSyntaxElementType.EMPTY_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(empty, JavaSyntaxElementType.EMPTY_STATEMENT, myParser.languageLevel) return empty } else if (tokenType === JavaSyntaxTokenType.IDENTIFIER || tokenType === JavaSyntaxTokenType.AT) { @@ -159,7 +156,7 @@ open class StatementParser( val declStatement = builder.mark() if (myParser.declarationParser.parse(builder, DeclarationParser.Context.CODE_BLOCK) != null) { - done(declStatement, JavaSyntaxElementType.DECLARATION_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(declStatement, JavaSyntaxElementType.DECLARATION_STATEMENT, myParser.languageLevel) return declStatement } @@ -170,7 +167,7 @@ open class StatementParser( else if (type == null || builder.tokenType !== JavaSyntaxTokenType.DOUBLE_COLON) { error(builder, message("expected.identifier")) if (type == null) builder.advanceLexer() - done(declStatement, JavaSyntaxElementType.DECLARATION_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(declStatement, JavaSyntaxElementType.DECLARATION_STATEMENT, myParser.languageLevel) return declStatement } else { @@ -200,15 +197,15 @@ open class StatementParser( } if (count > 1) { pos.drop() - done(list, JavaSyntaxElementType.EXPRESSION_LIST, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(list, JavaSyntaxElementType.EXPRESSION_LIST, myParser.languageLevel) semicolon(builder) - done(statement, JavaSyntaxElementType.EXPRESSION_LIST_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.EXPRESSION_LIST_STATEMENT, myParser.languageLevel) return statement } if (exprType(expr) !== JavaSyntaxElementType.REFERENCE_EXPRESSION) { SyntaxBuilderUtil.drop(list, pos) semicolon(builder) - done(statement, JavaSyntaxElementType.EXPRESSION_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.EXPRESSION_STATEMENT, myParser.languageLevel) return statement } val singleToken = expr.getEndTokenIndex() - expr.getStartTokenIndex() == 1 @@ -234,7 +231,7 @@ open class StatementParser( val decl = myParser.declarationParser.parse(builder, DeclarationParser.Context.CODE_BLOCK) if (decl != null) { val statement = decl.precede() - done(statement, JavaSyntaxElementType.DECLARATION_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.DECLARATION_STATEMENT, myParser.languageLevel) return statement } @@ -242,7 +239,7 @@ open class StatementParser( val statement = builder.mark() builder.advance(2) parseStatement(builder) - done(statement, JavaSyntaxElementType.LABELED_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.LABELED_STATEMENT, myParser.languageLevel) return statement } @@ -260,7 +257,7 @@ open class StatementParser( statementType = JavaSyntaxElementType.EXPRESSION_STATEMENT semicolon(builder) } - done(statement, statementType, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, statementType, myParser.languageLevel) return statement } @@ -320,11 +317,11 @@ open class StatementParser( } break } - done(statement, JavaSyntaxElementType.IF_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.IF_STATEMENT, myParser.languageLevel) if (stack != null) { for (i in stack.indices.reversed()) { statement = stack[i] - done(statement, JavaSyntaxElementType.IF_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.IF_STATEMENT, myParser.languageLevel) } } return statement @@ -375,7 +372,7 @@ open class StatementParser( if (!builder.expect(JavaSyntaxTokenType.LPARENTH)) { error(builder, message("expected.lparen")) - done(statement, JavaSyntaxElementType.FOR_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.FOR_STATEMENT, myParser.languageLevel) return statement } @@ -389,7 +386,7 @@ open class StatementParser( while (true) { val tokenType = builder.tokenType if (tokenType == null) { - done(statement, JavaSyntaxElementType.FOREACH_PATTERN_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.FOREACH_PATTERN_STATEMENT, myParser.languageLevel) return statement } if (tokenType === JavaSyntaxTokenType.RPARENTH) { @@ -415,7 +412,7 @@ open class StatementParser( if (parseStatement(builder) == null) { error(builder, message("expected.statement")) if (!builder.expect(JavaSyntaxTokenType.RPARENTH)) { - done(statement, JavaSyntaxElementType.FOR_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.FOR_STATEMENT, myParser.languageLevel) return statement } } @@ -433,7 +430,7 @@ open class StatementParser( error(builder, message("expected.semicolon")) } if (!builder.expect(JavaSyntaxTokenType.RPARENTH)) { - done(statement, JavaSyntaxElementType.FOR_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.FOR_STATEMENT, myParser.languageLevel) return statement } } @@ -441,7 +438,7 @@ open class StatementParser( parseForUpdateExpressions(builder) if (!builder.expect(JavaSyntaxTokenType.RPARENTH)) { error(builder, message("expected.rparen")) - done(statement, JavaSyntaxElementType.FOR_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.FOR_STATEMENT, myParser.languageLevel) return statement } } @@ -452,7 +449,7 @@ open class StatementParser( error(builder, message("expected.statement")) } - done(statement, JavaSyntaxElementType.FOR_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.FOR_STATEMENT, myParser.languageLevel) return statement } @@ -463,7 +460,7 @@ open class StatementParser( val expressionStatement: SyntaxTreeBuilder.Marker? if (builder.tokenType !== JavaSyntaxTokenType.COMMA) { expressionStatement = expr.precede() - done(expressionStatement, JavaSyntaxElementType.EXPRESSION_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(expressionStatement, JavaSyntaxElementType.EXPRESSION_STATEMENT, myParser.languageLevel) } else { val expressionList = expr.precede() @@ -478,8 +475,8 @@ open class StatementParser( } while (builder.tokenType === JavaSyntaxTokenType.COMMA) - done(expressionList, JavaSyntaxElementType.EXPRESSION_LIST, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) - done(expressionStatement, JavaSyntaxElementType.EXPRESSION_LIST_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(expressionList, JavaSyntaxElementType.EXPRESSION_LIST, myParser.languageLevel) + done(expressionStatement, JavaSyntaxElementType.EXPRESSION_LIST_STATEMENT, myParser.languageLevel) } expressionStatement.setCustomEdgeTokenBinders(null, defaultRightBinder()) @@ -508,7 +505,7 @@ open class StatementParser( error(builder, message("expected.statement")) } - done(statement, forEachType, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, forEachType, myParser.languageLevel) return statement } @@ -527,7 +524,7 @@ open class StatementParser( semicolon(builder) } - done(statement, JavaSyntaxElementType.DO_WHILE_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.DO_WHILE_STATEMENT, myParser.languageLevel) return statement } @@ -543,7 +540,7 @@ open class StatementParser( if (builder.tokenType === JavaSyntaxTokenType.DEFAULT_KEYWORD) { val defaultElement = builder.mark() builder.advanceLexer() - done(defaultElement, JavaSyntaxElementType.DEFAULT_CASE_LABEL_ELEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(defaultElement, JavaSyntaxElementType.DEFAULT_CASE_LABEL_ELEMENT, myParser.languageLevel) return Pair(defaultElement, false) } if (myParser.patternParser.isPattern(builder)) { @@ -569,7 +566,7 @@ open class StatementParser( } } while (builder.expect(JavaSyntaxTokenType.COMMA)) - done(list, JavaSyntaxElementType.CASE_LABEL_ELEMENT_LIST, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(list, JavaSyntaxElementType.CASE_LABEL_ELEMENT_LIST, myParser.languageLevel) parseGuard(builder) } @@ -597,11 +594,11 @@ open class StatementParser( error(builder, message("expected.switch.rule")) builder.expect(JavaSyntaxTokenType.SEMICOLON) } - done(statement, JavaSyntaxElementType.SWITCH_LABELED_RULE, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.SWITCH_LABELED_RULE, myParser.languageLevel) } else { expectOrError(builder, JavaSyntaxTokenType.COLON, "expected.colon.or.arrow") - done(statement, JavaSyntaxElementType.SWITCH_LABEL_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.SWITCH_LABEL_STATEMENT, myParser.languageLevel) } return statement @@ -623,7 +620,7 @@ open class StatementParser( builder.advanceLexer() builder.expect(JavaSyntaxTokenType.IDENTIFIER) semicolon(builder) - done(statement, JavaSyntaxElementType.BREAK_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.BREAK_STATEMENT, myParser.languageLevel) return statement } @@ -639,7 +636,7 @@ open class StatementParser( semicolon(builder) } - done(statement, JavaSyntaxElementType.YIELD_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.YIELD_STATEMENT, myParser.languageLevel) return statement } @@ -648,7 +645,7 @@ open class StatementParser( builder.advanceLexer() builder.expect(JavaSyntaxTokenType.IDENTIFIER) semicolon(builder) - done(statement, JavaSyntaxElementType.CONTINUE_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.CONTINUE_STATEMENT, myParser.languageLevel) return statement } @@ -657,7 +654,7 @@ open class StatementParser( builder.advanceLexer() myParser.expressionParser.parse(builder) semicolon(builder) - done(statement, JavaSyntaxElementType.RETURN_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.RETURN_STATEMENT, myParser.languageLevel) return statement } @@ -672,7 +669,7 @@ open class StatementParser( semicolon(builder) } - done(statement, JavaSyntaxElementType.THROW_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.THROW_STATEMENT, myParser.languageLevel) return statement } @@ -709,7 +706,7 @@ open class StatementParser( } } - done(statement, JavaSyntaxElementType.TRY_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.TRY_STATEMENT, myParser.languageLevel) return statement } @@ -720,7 +717,7 @@ open class StatementParser( if (!builder.expect(JavaSyntaxTokenType.LPARENTH)) { error(builder, message("expected.lparen")) - done(section, JavaSyntaxElementType.CATCH_SECTION, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(section, JavaSyntaxElementType.CATCH_SECTION, myParser.languageLevel) return false } @@ -731,18 +728,18 @@ open class StatementParser( if (!builder.expect(JavaSyntaxTokenType.RPARENTH)) { error(builder, message("expected.rparen")) - done(section, JavaSyntaxElementType.CATCH_SECTION, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(section, JavaSyntaxElementType.CATCH_SECTION, myParser.languageLevel) return false } val body = parseCodeBlock(builder, true) if (body == null) { error(builder, message("expected.lbrace")) - done(section, JavaSyntaxElementType.CATCH_SECTION, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(section, JavaSyntaxElementType.CATCH_SECTION, myParser.languageLevel) return false } - done(section, JavaSyntaxElementType.CATCH_SECTION, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(section, JavaSyntaxElementType.CATCH_SECTION, myParser.languageLevel) return true } @@ -760,14 +757,14 @@ open class StatementParser( semicolon(builder) } - done(statement, JavaSyntaxElementType.ASSERT_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.ASSERT_STATEMENT, myParser.languageLevel) return statement } private fun parseBlockStatement(builder: SyntaxTreeBuilder): SyntaxTreeBuilder.Marker { val statement = builder.mark() parseCodeBlock(builder, true) - done(statement, JavaSyntaxElementType.BLOCK_STATEMENT, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, JavaSyntaxElementType.BLOCK_STATEMENT, myParser.languageLevel) return statement } @@ -782,7 +779,7 @@ open class StatementParser( } } - done(statement, type, myParser.languageLevel, myWhiteSpaceAndCommentSetHolder) + done(statement, type, myParser.languageLevel) return statement }