blob: 1512babf17d3f8846637233a68084a25a32a895f [file] [log] [blame]
import 'SimplerKiamaCS.ecore'
import 'SimplerKiamaAS.ecore'
package kiamacs
context TopCS
def : ast() : kiamaas::Top =
kiamaas::Top {
node = node.ast()
}
context NodeCS
def : ast() : kiamaas::Node =
invalid -- to be overriden
context CompositeCS
def : ast() : kiamaas::Composite =
kiamaas::Composite {
child = child.ast(),
depth = let container = ast().oclContainer() in
-- if container.oclIsKindOf(kiamaas::Node) then container.oclAsType(kiamaas::Node).depth + 1 else 0 endif,
if container.oclIsKindOf(kiamaas::Top) then 0 else container.oclAsType(kiamaas::Composite).depth + 1 endif,
height = ast().child.height + 1
--height = child.ast().height + 1
}
context LeafCS
def : ast() : kiamaas::Leaf =
kiamaas::Leaf {
depth = let container = ast().oclContainer() in
-- if container.oclIsKindOf(kiamaas::Node) then container.oclAsType(kiamaas::Node).depth + 1 else 0 endif,
if container.oclIsKindOf(kiamaas::Top) then 0 else container.oclAsType(kiamaas::Composite).depth +1 endif,
height = 0
}
endpackage