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))