override fun extractDeclarationBody()

in code/library/src/main/kotlin/org/fbme/lib/iec61499/parser/BasicFBTypeConverter.kt [17:41]


    override fun extractDeclarationBody(identifier: Identifier?): BasicFBTypeDeclaration {
        checkNotNull(element)
        val fbtd = factory.createBasicFBTypeDeclaration(identifier)
        val basicFbElement = element.getChild("BasicFB")
        FBInterfaceConverter(this, fbtd).extractInterface()
        FBInterfaceAdaptersConverter(this, fbtd).extractAdapters()
        ParameterDeclarationConverter.extractAll(with(basicFbElement.getChild("InternalVars")), fbtd.internalVariables)
        val eccElement = basicFbElement.getChild("ECC")
        if (eccElement != null) {
            val ecc = fbtd.ecc
            val ecStateElements = eccElement.getChildren("ECState")
            for (ecStateElement in ecStateElements) {
                ecc.states.add(StateConverter(with(ecStateElement)).extract())
            }
            val ecTransitionElements = eccElement.getChildren("ECTransition")
            for (ecTransitionElement in ecTransitionElements) {
                ecc.transitions.add(convertEcTransition(ecTransitionElement, fbtd))
            }
        }
        val algorithmElements = basicFbElement.getChildren("Algorithm")
        for (algorithmElement in algorithmElements) {
            fbtd.algorithms.add(AlgorithmConverter(with(algorithmElement), stAlgorithmConverter).extract())
        }
        return fbtd
    }