[syntax] add a helper method for parsing based on syntax definition

GitOrigin-RevId: 1a99d0cf73153164a03e3be27a5581bf28fb46ca
This commit is contained in:
Alexander Zolotov
2025-08-19 11:43:09 +02:00
committed by intellij-monorepo-bot
parent d8e4a56893
commit a3ee2d7ec0
2 changed files with 23 additions and 0 deletions

View File

@@ -23,7 +23,9 @@
*f:com.intellij.platform.syntax.tree.KmpSyntaxNode$Companion
- f:root(java.lang.CharSequence,com.intellij.platform.syntax.tree.ASTMarkers,com.intellij.platform.syntax.lexer.Lexer,com.intellij.platform.syntax.tree.TokenizationPolicy,com.intellij.platform.syntax.tree.SyntaxBuilderFactory,com.intellij.platform.syntax.lexer.TokenList,com.intellij.platform.syntax.util.language.SyntaxElementLanguageProvider,kotlin.jvm.functions.Function0):com.intellij.platform.syntax.tree.KmpSyntaxNode
*f:com.intellij.platform.syntax.tree.ParseKt
- sf:parse(java.lang.CharSequence,com.intellij.platform.syntax.LanguageSyntaxDefinition,com.intellij.platform.syntax.util.language.SyntaxElementLanguageProvider,com.intellij.platform.syntax.CancellationProvider,com.intellij.platform.syntax.Logger):com.intellij.platform.syntax.tree.KmpSyntaxNode
- sf:parse(java.lang.CharSequence,kotlin.jvm.functions.Function0,kotlin.jvm.functions.Function1,com.intellij.platform.syntax.SyntaxElementTypeSet,com.intellij.platform.syntax.SyntaxElementTypeSet,com.intellij.platform.syntax.util.language.SyntaxElementLanguageProvider,com.intellij.platform.syntax.CancellationProvider,com.intellij.platform.syntax.Logger,com.intellij.platform.syntax.parser.WhitespaceOrCommentBindingPolicy):com.intellij.platform.syntax.tree.KmpSyntaxNode
- bs:parse$default(java.lang.CharSequence,com.intellij.platform.syntax.LanguageSyntaxDefinition,com.intellij.platform.syntax.util.language.SyntaxElementLanguageProvider,com.intellij.platform.syntax.CancellationProvider,com.intellij.platform.syntax.Logger,I,java.lang.Object):com.intellij.platform.syntax.tree.KmpSyntaxNode
- bs:parse$default(java.lang.CharSequence,kotlin.jvm.functions.Function0,kotlin.jvm.functions.Function1,com.intellij.platform.syntax.SyntaxElementTypeSet,com.intellij.platform.syntax.SyntaxElementTypeSet,com.intellij.platform.syntax.util.language.SyntaxElementLanguageProvider,com.intellij.platform.syntax.CancellationProvider,com.intellij.platform.syntax.Logger,com.intellij.platform.syntax.parser.WhitespaceOrCommentBindingPolicy,I,java.lang.Object):com.intellij.platform.syntax.tree.KmpSyntaxNode
*:com.intellij.platform.syntax.tree.SyntaxBuilderFactory
- a:build(java.lang.CharSequence,com.intellij.platform.syntax.lexer.TokenList,I):com.intellij.platform.syntax.parser.SyntaxTreeBuilder

View File

@@ -4,6 +4,7 @@
package com.intellij.platform.syntax.tree
import com.intellij.platform.syntax.CancellationProvider
import com.intellij.platform.syntax.LanguageSyntaxDefinition
import com.intellij.platform.syntax.Logger
import com.intellij.platform.syntax.SyntaxElementTypeSet
import com.intellij.platform.syntax.element.SyntaxTokenTypes
@@ -19,6 +20,26 @@ import com.intellij.platform.syntax.parser.WhitespaceOrCommentBindingPolicy
import com.intellij.platform.syntax.util.language.SyntaxElementLanguageProvider
import org.jetbrains.annotations.ApiStatus
fun parse(
text: CharSequence,
syntaxDefinition: LanguageSyntaxDefinition,
languageMapper: SyntaxElementLanguageProvider,
cancellationProvider: CancellationProvider? = null,
logger: Logger? = null,
): KmpSyntaxNode {
return parse(
text = text,
lexerFactory = syntaxDefinition::createLexer,
parser = syntaxDefinition::parse,
whitespaces = syntaxDefinition.whitespaces,
comments = syntaxDefinition.comments,
languageMapper = languageMapper,
cancellationProvider = cancellationProvider,
logger = logger,
whitespaceOrCommentBindingPolicy = syntaxDefinition.whitespaceOrCommentBindingPolicy,
)
}
fun parse(
text: CharSequence,
lexerFactory: () -> Lexer,