mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 22:51:17 +07:00
(cherry picked from commit 4086267a8b175d5cd1fb1c0ee77b4e0ddf999524) IJ-CR-168727 GitOrigin-RevId: 96790b1a0aa125c07767685caa008369fb7496b6
intellij.platform.syntax.util
Utilities to be used in syntax implementations
SyntaxGeneratedParserRuntime
Kotlin-multiplatform compatible runtime engine for parsers generated using the Grammar-Kit
Example of use:
@Override
protected ASTNode doParseContents(@NotNull ASTNode chameleon, @NotNull PsiElement psi) {
PsiSyntaxBuilderFactory builderFactory = PsiSyntaxBuilderFactory.getInstance();
var elementType = chameleon.getElementType();
var lexer = new JsonSyntaxLexer();
var syntaxBuilder = builderFactory.createBuilder(chameleon, lexer, getLanguage(), chameleon.getChars());
var treeBuilder = syntaxBuilder.getSyntaxTreeBuilder()
var runtimeParserRuntime = new PsiSyntaxParserRuntimeFactoryImpl(JsonLanguage.INSTANCE)
.buildParserUtils(treeBuilder);
new JsonParser().parse(Objects.requireNonNull(ElementTypeConverters.getConverter(JsonLanguage)).convert(elementType), runtimeParserRuntime);
return syntaxBuilder.getTreeBuilt().getFirstChildNode();
}