assert ( refNode.getType( ) == Token.GETPROP || refNode.getType( ) == Token.GETELEM );
assert ( refNode.getType( ) == Token.GETPROP || refNode.getType( ) == Token.GETELEM || refNode.getType( ) == Token.SETELEM || refNode.getType( ) == Token.SETPROP );
	private void compileDirectColRefExpr( Node refNode, ScriptOrFnNode tree,			List columnExprList ) throws BirtException	{		assert ( refNode.getType( ) == Token.GETPROP || refNode.getType( ) == Token.GETELEM );		Node rowName = refNode.getFirstChild( );		assert ( rowName != null );		if ( rowName.getType( ) != Token.NAME )		{			if ( refNode.getType( ) == Token.GETPROP					|| refNode.getType( ) == Token.GETELEM )			{				int level = compileOuterColRefExpr( refNode );				if ( level == -1 )				{					compileComplexExpr( refNode, tree, columnExprList );				}				else				{					Node nextNode = refNode.getLastChild( );					if ( nextNode.getType( ) == Token.STRING )					{						ColumnBinding info = new ColumnBinding( nextNode.getString( ),								"",								level );						columnExprList.add( info );					}				}				return;			}			compileComplexExpr( refNode, tree, columnExprList );			return;		}		else			compileSimpleColumnRefExpr( refNode, rowName, columnExprList );	}