[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
This commit is contained in:
Max Medvedev
2025-05-13 10:43:07 +00:00
committed by intellij-monorepo-bot
parent 267f0883e5
commit ace8d2de57
7 changed files with 85 additions and 93 deletions
@@ -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
}
@@ -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
@@ -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
@@ -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)
@@ -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
}
@@ -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<SyntaxElementType?, ParserData?>
private val myWhiteSpaceAndCommentSetHolder = WhiteSpaceAndCommentSetHolder
init {
ourInfixParsers = HashMap<SyntaxElementType?, ParserData?>()
@@ -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)
}
}
@@ -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<SyntaxTreeBuilder.Marker?, Boolean?>(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
}