mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
…
Syntax Library
IntelliJ Platform Syntax Library provides an engine for parsing files. See Syntax PSI library for more information on how to build PSI tree
Main concepts
com.intellij.platform.syntax.SyntaxElementType represents a type of a node in the syntax tree (both for leafs and composites).
com.intellij.platform.syntax.parser.SyntaxTreeBuilder allows parsing the tree.
You can obtain an instance of SyntaxTreeBuilder with the help of com.intellij.platform.syntax.parser.SyntaxTreeBuilderFactory.
com.intellij.platform.syntax.parser.ProductionResultKt.prepareProduction allows to obtain the raw result of parsing.
com.intellij.platform.syntax.lexer.Lexer provides lexing functionality.
Example of usage
val builder = SyntaxTreeBuilderFactory.builder(
text = "my file text",
whitespaces = setOf(SyntaxTokenTypes.WHITE_SPACE),
comments = emptySet(),
lexer = myLexer
)
val marker = builder.mark()
parseMyFileContent()
marker.done(type = MyLangSyntaxElementTypes.FILE)
val production = prepareProduction(builder = builder)