*/
void doubleTree(struct node* node) {
struct node* oldLeft;
if (node==NULL) return;
// do the subtrees
doubleTree(node->left);
doubleTree(node->right);
// duplicate this node to its left
oldLeft = node->left;
node->left = newNode(node->data);
node->left->left = oldLeft;
}
Ki8gCnZvaWQgZG91YmxlVHJlZShzdHJ1Y3Qgbm9kZSogbm9kZSkgeyAKICBzdHJ1Y3Qgbm9kZSogb2xkTGVmdDsKCiAgaWYgKG5vZGU9PU5VTEwpIHJldHVybjsKCiAgLy8gZG8gdGhlIHN1YnRyZWVzIAogIGRvdWJsZVRyZWUobm9kZS0+bGVmdCk7IAogIGRvdWJsZVRyZWUobm9kZS0+cmlnaHQpOwoKICAvLyBkdXBsaWNhdGUgdGhpcyBub2RlIHRvIGl0cyBsZWZ0IAogIG9sZExlZnQgPSBub2RlLT5sZWZ0OyAKICBub2RlLT5sZWZ0ID0gbmV3Tm9kZShub2RlLT5kYXRhKTsgCiAgbm9kZS0+bGVmdC0+bGVmdCA9IG9sZExlZnQ7IAp9IA==
gnatgcc -c -pipe -O2 prog.adb
prog.adb:1:01: compilation unit expected
prog.adb:2:36: illegal character, replaced by "("
prog.adb:5:11: == should be =
prog.adb:8:18: invalid token
prog.adb:9:18: invalid token
prog.adb:12:17: invalid token
prog.adb:13:07: invalid token
prog.adb:14:07: invalid token
prog.adb:15:01: illegal character, replaced by ")"
gnatmake: "prog.adb" compilation error