public void ShouldGetCorrectNullConstant()
        {
            var constExpr = new MdxConstantExpression().WithValue(null);
            var expr      = constExpr.ToString();

            expr.Should().Be(MdxConstants.NullConstant);
        }
        public void ShouldGetCorrectIntConstant(int value, string expectedExpr)
        {
            var constExpr = new MdxConstantExpression().WithValue(value);
            var expr      = constExpr.ToString();

            expr.Should().Be(expectedExpr);
        }
Ejemplo n.º 3
0
        static string ConstAsString(MdxConstantExpression cnst)
        {
            var result = cnst.Value;

            if (result == null)
            {
                return(null);
            }

            if (cnst.Kind != MdxConstantKind.String)
            {
                return(result);
            }
            return(result.Substring(1, result.Length - 2));
        }
		static string ConstAsString(MdxConstantExpression cnst)
		{
			var result=cnst.Value;
			if (result==null)
				return null;
			
			if(cnst.Kind!=MdxConstantKind.String)
				return result;
			return result.Substring(1,result.Length-2);
		}
Ejemplo n.º 5
0
    // $ANTLR end "expression_property"


    // $ANTLR start "expression_simple"
    // D:\\tfs\\Ranet.UILibrary.OLAP4\\trunk\\UILibrary.Olap\\Ranet.Olap.Mdx\\Compiler\\Parser\\mdx.g:296:1: expression_simple returns [MdxExpression value] : ( expression_function | '(' expressions_list ')' | '{' ( expressions_list )? '}' | expression_case | STRING | INTEGER | FLOAT | identifier | RANET_EXPRESSION );
    public MdxExpression expression_simple() // throws RecognitionException [1]
    {   

        MdxExpression value = default(MdxExpression);

        IToken STRING31 = null;
        IToken INTEGER32 = null;
        IToken FLOAT33 = null;
        IToken RANET_EXPRESSION35 = null;
        MdxFunctionExpression expression_function27 = default(MdxFunctionExpression);

        List<MdxExpression> expressions_list28 = default(List<MdxExpression>);

        List<MdxExpression> expressions_list29 = default(List<MdxExpression>);

        MdxCaseExpression expression_case30 = default(MdxCaseExpression);

        string identifier34 = default(string);


        try 
    	{
            // D:\\tfs\\Ranet.UILibrary.OLAP4\\trunk\\UILibrary.Olap\\Ranet.Olap.Mdx\\Compiler\\Parser\\mdx.g:297:2: ( expression_function | '(' expressions_list ')' | '{' ( expressions_list )? '}' | expression_case | STRING | INTEGER | FLOAT | identifier | RANET_EXPRESSION )
            int alt44 = 9;
            alt44 = dfa44.Predict(input);
            switch (alt44) 
            {
                case 1 :
                    // D:\\tfs\\Ranet.UILibrary.OLAP4\\trunk\\UILibrary.Olap\\Ranet.Olap.Mdx\\Compiler\\Parser\\mdx.g:297:4: expression_function
                    {
                    	PushFollow(FOLLOW_expression_function_in_expression_simple1668);
                    	expression_function27 = expression_function();
                    	state.followingStackPointer--;

                    	 value = expression_function27; 

                    }
                    break;
                case 2 :
                    // D:\\tfs\\Ranet.UILibrary.OLAP4\\trunk\\UILibrary.Olap\\Ranet.Olap.Mdx\\Compiler\\Parser\\mdx.g:298:4: '(' expressions_list ')'
                    {
                    	Match(input,61,FOLLOW_61_in_expression_simple1675); 
                    	PushFollow(FOLLOW_expressions_list_in_expression_simple1677);
                    	expressions_list28 = expressions_list();
                    	state.followingStackPointer--;

                    	Match(input,62,FOLLOW_62_in_expression_simple1679); 

                    		  value = null;
                    		  if  (expressions_list28!=null)
                    		   if (expressions_list28.Count==1)
                    		     value = expressions_list28[0] as MdxTupleExpression;
                    		  
                    		  if(value==null)
                    		    value = new MdxTupleExpression(expressions_list28); 
                    		    
                    		 

                    }
                    break;
                case 3 :
                    // D:\\tfs\\Ranet.UILibrary.OLAP4\\trunk\\UILibrary.Olap\\Ranet.Olap.Mdx\\Compiler\\Parser\\mdx.g:309:4: '{' ( expressions_list )? '}'
                    {
                    	Match(input,74,FOLLOW_74_in_expression_simple1688); 
                    	// D:\\tfs\\Ranet.UILibrary.OLAP4\\trunk\\UILibrary.Olap\\Ranet.Olap.Mdx\\Compiler\\Parser\\mdx.g:309:8: ( expressions_list )?
                    	int alt43 = 2;
                    	int LA43_0 = input.LA(1);

                    	if ( (LA43_0 == PROPERTIES || LA43_0 == DIMENSION || LA43_0 == INTEGER || LA43_0 == RANET_EXPRESSION || LA43_0 == NOT || (LA43_0 >= STRING && LA43_0 <= CASE) || (LA43_0 >= ID && LA43_0 <= QUOTED_ID) || LA43_0 == 61 || (LA43_0 >= 68 && LA43_0 <= 69) || LA43_0 == 74) )
                    	{
                    	    alt43 = 1;
                    	}
                    	switch (alt43) 
                    	{
                    	    case 1 :
                    	        // D:\\tfs\\Ranet.UILibrary.OLAP4\\trunk\\UILibrary.Olap\\Ranet.Olap.Mdx\\Compiler\\Parser\\mdx.g:309:9: expressions_list
                    	        {
                    	        	PushFollow(FOLLOW_expressions_list_in_expression_simple1691);
                    	        	expressions_list29 = expressions_list();
                    	        	state.followingStackPointer--;


                    	        }
                    	        break;

                    	}

                    	Match(input,75,FOLLOW_75_in_expression_simple1695); 
                    	 value = new MdxSetExpression(expressions_list29); 

                    }
                    break;
                case 4 :
                    // D:\\tfs\\Ranet.UILibrary.OLAP4\\trunk\\UILibrary.Olap\\Ranet.Olap.Mdx\\Compiler\\Parser\\mdx.g:311:4: expression_case
                    {
                    	PushFollow(FOLLOW_expression_case_in_expression_simple1704);
                    	expression_case30 = expression_case();
                    	state.followingStackPointer--;

                    	 value = expression_case30;  

                    }
                    break;
                case 5 :
                    // D:\\tfs\\Ranet.UILibrary.OLAP4\\trunk\\UILibrary.Olap\\Ranet.Olap.Mdx\\Compiler\\Parser\\mdx.g:312:4: STRING
                    {
                    	STRING31=(IToken)Match(input,STRING,FOLLOW_STRING_in_expression_simple1711); 
                    	 value = new MdxConstantExpression(((STRING31 != null) ? STRING31.Text : null),MdxConstantKind.String); 

                    }
                    break;
                case 6 :
                    // D:\\tfs\\Ranet.UILibrary.OLAP4\\trunk\\UILibrary.Olap\\Ranet.Olap.Mdx\\Compiler\\Parser\\mdx.g:313:4: INTEGER
                    {
                    	INTEGER32=(IToken)Match(input,INTEGER,FOLLOW_INTEGER_in_expression_simple1718); 
                    	 value = new MdxConstantExpression(((INTEGER32 != null) ? INTEGER32.Text : null),MdxConstantKind.Integer); 

                    }
                    break;
                case 7 :
                    // D:\\tfs\\Ranet.UILibrary.OLAP4\\trunk\\UILibrary.Olap\\Ranet.Olap.Mdx\\Compiler\\Parser\\mdx.g:314:4: FLOAT
                    {
                    	FLOAT33=(IToken)Match(input,FLOAT,FOLLOW_FLOAT_in_expression_simple1725); 
                    	 value = new MdxConstantExpression(((FLOAT33 != null) ? FLOAT33.Text : null),MdxConstantKind.Float); 

                    }
                    break;
                case 8 :
                    // D:\\tfs\\Ranet.UILibrary.OLAP4\\trunk\\UILibrary.Olap\\Ranet.Olap.Mdx\\Compiler\\Parser\\mdx.g:315:4: identifier
                    {
                    	PushFollow(FOLLOW_identifier_in_expression_simple1732);
                    	identifier34 = identifier();
                    	state.followingStackPointer--;

                    	 value = new MdxObjectReferenceExpression(identifier34); 

                    }
                    break;
                case 9 :
                    // D:\\tfs\\Ranet.UILibrary.OLAP4\\trunk\\UILibrary.Olap\\Ranet.Olap.Mdx\\Compiler\\Parser\\mdx.g:316:4: RANET_EXPRESSION
                    {
                    	RANET_EXPRESSION35=(IToken)Match(input,RANET_EXPRESSION,FOLLOW_RANET_EXPRESSION_in_expression_simple1739); 
                    	 value = new MdxObjectReferenceExpression(((RANET_EXPRESSION35 != null) ? RANET_EXPRESSION35.Text : null)); 

                    }
                    break;

            }
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return value;
    }