예제 #1
0
            public ArgInfo(int idx, UserType type, ArgCount count, string name,
                           bool is_default, bool is_ordered)
            {
                Idx   = idx;
                Type  = type;
                Count = count;
                Name  = name;

                switch (count)
                {
                case ArgCount.ZeroOrMore:
                    Flags = new CodeBinaryOperatorExpression(Optional, Or, Multi);
                    break;

                case ArgCount.OneOrMore:
                    Flags = Multi;
                    break;

                case ArgCount.Optional:
                    Flags = Optional;
                    break;

                case ArgCount.Standard:
                    Flags = Standard;
                    break;

                default:
                    throw new Exception("Unsupported ArgCount kind " + Count.ToString());
                }

                if (is_ordered)
                {
                    Flags = new CodeBinaryOperatorExpression(Flags, Or, Ordered);

                    if (is_default)
                    {
                        Flags = new CodeBinaryOperatorExpression(Flags, Or, DefOrd);
                    }
                }
                else if (is_default)
                {
                    Flags = new CodeBinaryOperatorExpression(Flags, Or, Default);
                }
            }
예제 #2
0
	    public ArgInfo (int idx, UserType type, ArgCount count, string name, 
			    bool is_default, bool is_ordered)
	    {
		Idx = idx;
		Type = type;
		Count = count;
		Name = name;

		switch (count) {
		case ArgCount.ZeroOrMore:
		    Flags = new CodeBinaryOperatorExpression (Optional, Or, Multi);
		    break;
		case ArgCount.OneOrMore:
		    Flags = Multi;
		    break;
		case ArgCount.Optional:
		    Flags = Optional;
		    break;
		case ArgCount.Standard:
		    Flags = Standard;
		    break;
		default:
		    throw new Exception ("Unsupported ArgCount kind " + Count.ToString ());
		}

		if (is_ordered) {
		    Flags = new CodeBinaryOperatorExpression (Flags, Or, Ordered);
			
		    if (is_default)
			Flags = new CodeBinaryOperatorExpression (Flags, Or, DefOrd);
		} else if (is_default) {
		    Flags = new CodeBinaryOperatorExpression (Flags, Or, Default);
		}
	    }