Coverage Summary for Class: MainKt (itmo.verifier)

Class Method, % Branch, % Line, % Instruction, %
MainKt 0% (0/2) 0% (0/6) 0% (0/16) 0% (0/113)
MainKt$getDiagram$xml$1 0% (0/1) 0% (0/3) 0% (0/10)
Total 0% (0/3) 0% (0/6) 0% (0/19) 0% (0/123)


 package itmo.verifier
 
 import com.github.h0tk3y.betterParse.grammar.parseToEnd
 import itmo.verifier.formula.CTLGrammar
 import itmo.verifier.model.Model
 import kotlinx.serialization.modules.SerializersModule
 import kotlinx.serialization.serializer
 import nl.adaptivity.xmlutil.XmlDeclMode
 import nl.adaptivity.xmlutil.serialization.XML
 import java.io.File
 import java.io.PrintStream
 import kotlin.system.exitProcess
 
 fun main(args: Array<String>) {
     if (2 > args.size || args.size > 3) {
         println("Usage: Main <file with model> <file with ctl formula> [<output file>]")
         exitProcess(0)
     }
     val modelFile = args[0]
     val formulaFile = args[1]
     val outputFile = if (args.size < 3) System.out else PrintStream(File(args[2]).outputStream())
 
     val modelText = File(modelFile).readText()
     val formulaText = File(formulaFile).readText()
 
     val model = Model(getDiagram(modelText))
     val ctlFormula = CTLGrammar.parseToEnd(formulaText).optimize()
 
     val checker = Checker(model, ctlFormula)
     outputFile.println(checker.check()[0])
 
 
 }
 
 fun getDiagram(modelText: String): Diagram {
     val module = SerializersModule {}
     val xml = XML(module) {
         indentString = "    "
         xmlDeclMode = XmlDeclMode.Minimal
         autoPolymorphic = true
     }
 
     val serializer = serializer<Diagram>()
     return xml.decodeFromString(serializer, modelText)
 }