mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[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:
committed by
intellij-monorepo-bot
parent
267f0883e5
commit
ace8d2de57
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user