Coverage Summary for Class: ParserKt (itmo.analyzer.ast)

Class Method, % Branch, % Line, % Instruction, %
ParserKt 57.1% (4/7) 44.4% (4/9) 40.7% (24/59)
ParserKt$getOrThrow$1$1 0% (0/1) 0% (0/1) 0% (0/6)
Total 50% (4/8) 40% (4/10) 36.9% (24/65)


 package itmo.analyzer.ast
 
 import com.github.javaparser.JavaParser
 import com.github.javaparser.ParseResult
 import com.github.javaparser.ParserConfiguration
 import com.github.javaparser.ParserConfiguration.LanguageLevel.JAVA_17
 import com.github.javaparser.ast.CompilationUnit
 import java.io.File
 
 fun File.parseJavaCode(): CompilationUnit = tryParseJavaCode().getOrThrow()
 fun String.parseJavaCode(): CompilationUnit = tryParseJavaCode().getOrThrow()
 
 fun File.tryParseJavaCode(): ParseResult<CompilationUnit> = parser.parse(this)
 fun String.tryParseJavaCode(): ParseResult<CompilationUnit> = parser.parse(this)
 
 private fun <T> ParseResult<T>.getOrThrow(): T = result.orElseThrow {
     RuntimeException("""
         |Cannot parse Java code: 
         |  ${problems.joinToString("\n|  ") { it.verboseMessage }}
     """.trimMargin())
 }
 
 private val parser = JavaParser(ParserConfiguration().setLanguageLevel(JAVA_17))