processChild( complexNode, child, tree, columnExprList );
processChild( child, tree, columnExprList );
	private void compileComplexExpr( Node complexNode, ScriptOrFnNode tree,			List columnExprList ) throws BirtException	{		Node child = complexNode.getFirstChild( );		while ( child != null )		{			if ( child.getType( ) == Token.FUNCTION )			{				int index = getFunctionIndex( child.getString( ), tree );				compileFunctionNode( tree.getFunctionNode( index ),						tree,						columnExprList );			}			// keep reference to next child, since subsequent steps could lose			// the reference to it			Node nextChild = child.getNext( );			// do not include constants into the sub-expression list			if ( child.getType( ) == Token.NUMBER					|| child.getType( ) == Token.STRING					|| child.getType( ) == Token.TRUE					|| child.getType( ) == Token.FALSE					|| child.getType( ) == Token.NULL )			{				processChild( complexNode, child, tree, columnExprList );				child = nextChild;				continue;			}			processChild( complexNode, child, tree, columnExprList );			child = nextChild;		}	}