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
}