ASTNode (ASTNode element, boolean expandChameleons) { if (element instanceof LeafElement || !expandChameleons && isCollapsedChameleon(element)) { return element; } else { for (ASTNode child = element.getFirstChildNode(); child != null; child = child.getTreeNext()) { ASTNode leaf = findFirstLeaf(child, expandChameleons); if (leaf != null) return leaf; } return null; } }