Example #1
0
        /// <summary>
        /// Sets the parameter usage for a method parameter.
        /// </summary>
        /// <param name="parameterIndex">first parameter has index 1</param>
        public static void SetMethodParameterUsage(this ASTContext context,
                                                   string className, string methodName, int parameterCount, int parameterIndex,
                                                   ParameterUsage usage)
        {
            if (parameterIndex <= 0)
            {
                throw new ArgumentException("parameterIndex");
            }

            var @class = context.FindCompleteClass(className);

            Method method;

            if (parameterCount >= 0)
            {
                method = @class.Methods.Find(m => m.Name == methodName &&
                                             m.Parameters.Count == parameterCount);
            }
            else
            {
                method = @class.Methods.Find(m => m.Name == methodName);
            }

            if (method == null)
            {
                throw new ArgumentException("methodName");
            }

            if (method.Parameters.Count < parameterIndex)
            {
                throw new ArgumentException("parameterIndex");
            }

            method.Parameters[parameterIndex - 1].Usage = usage;
        }
Example #2
0
        private static string GetParameterUsage(ParameterUsage usage)
        {
            switch (usage)
            {
            case ParameterUsage.Out:
                return("out ");

            case ParameterUsage.InOut:
                return("ref ");

            default:
                return(string.Empty);
            }
        }
Example #3
0
        /// <summary>
        /// Sets the parameter usage for a function parameter.
        /// </summary>
        /// <param name="parameterIndex">first parameter has index 1</param>
        public static void SetFunctionParameterUsage(this ASTContext context,
            string functionName, int parameterIndex, ParameterUsage usage)
        {
            if (parameterIndex <= 0)
                throw new ArgumentException("parameterIndex");

            foreach (var function in context.FindFunction(functionName))
            {
                if (function.Parameters.Count < parameterIndex)
                    throw new ArgumentException("parameterIndex");

                function.Parameters[parameterIndex - 1].Usage = usage;
            }
        }
Example #4
0
        public void Generate_The_Correct_Prefix_For_BooleanSwitches()
        {
            // arrange
            var mock = new Mock <IInlineSequence>();

            mock.SetupAllProperties();
            var builder   = DefaultBuilder.CreateDefaultBuilder();
            var parameter = new BooleanSwitch(builder.Context.ParserRepository.Get("util"), 'v', "value", o => { });

            parameter.Help.ValueAlias = "val";
            var vm    = new ParameterViewModel(parameter, Theme.Default);
            var usage = new ParameterUsage
            {
                ViewModel = vm
            };

            // act
            // assert
            usage.GenerateValueAlias(parameter).Should().Be("");
        }
Example #5
0
        public void Generate_The_Correct_Output_For_A_Single_Value_Switch()
        {
            // arrange
            var mock = new Mock <IInlineSequence>();

            mock.SetupAllProperties();
            var builder   = DefaultBuilder.CreateDefaultBuilder();
            var parameter = new SingleValueSwitch(builder.Context.ParserRepository.Get("util"), 'v', "value",
                                                  (o, s) => { });
            var vm    = new ParameterViewModel(parameter, Theme.Default);
            var usage = new ParameterUsage
            {
                ViewModel = vm
            };

            // act
            usage.GenerateSequence(mock.Object);

            // assert
            usage.StringBuilder.ToString().Should().Be("[-v, --value v]");
        }
Example #6
0
        public void Generate_The_Correct_Prefix_For_Positionals()
        {
            // arrange
            var mock = new Mock <IInlineSequence>();

            mock.SetupAllProperties();
            var builder   = DefaultBuilder.CreateDefaultBuilder();
            var parameter = new Positional(builder.Context.ParserRepository.Get("util"), (o, strings) => { }, 1, 1);

            parameter.Help.ValueAlias = "val";
            var vm    = new ParameterViewModel(parameter, Theme.Default);
            var usage = new ParameterUsage
            {
                ViewModel = vm
            };

            // act
            usage.GenerateSequence(mock.Object);

            // assert
            usage.StringBuilder.ToString().Should().Be("[val]");
        }
Example #7
0
        public void Generate_The_Correct_Output_For_A_Separated_Switch_With_No_Word()
        {
            // arrange
            var mock = new Mock <IInlineSequence>();

            mock.SetupAllProperties();
            var builder   = DefaultBuilder.CreateDefaultBuilder();
            var parameter = new SeparatedSwitch(builder.Context.ParserRepository.Get("util"), 'v', null,
                                                (o, s) => { });

            parameter.Help.ValueAlias = "val";
            var vm    = new ParameterViewModel(parameter, Theme.Default);
            var usage = new ParameterUsage
            {
                ViewModel = vm
            };

            // act
            usage.GenerateSequence(mock.Object);

            // assert
            usage.StringBuilder.ToString().Should().Be("[-v:val]");
        }
Example #8
0
        public void Generate_The_Correct_Prefix_For_Switches()
        {
            // arrange
            var mock = new Mock <IInlineSequence>();

            mock.SetupAllProperties();
            var builder   = DefaultBuilder.CreateDefaultBuilder();
            var parameter = new ValuesSwitch(builder.Context.ParserRepository.Get("util"), 'v', "value",
                                             (o, strings) => { }, 1, 3);

            parameter.Help.ValueAlias = "val";
            var vm    = new ParameterViewModel(parameter, Theme.Default);
            var usage = new ParameterUsage
            {
                ViewModel = vm
            };

            // act
            usage.GenerateSequence(mock.Object);

            // assert
            usage.GeneratedText.Should().Be("[-v, --value val1..val3]");
        }
Example #9
0
        /// <summary>
        /// Sets the parameter usage for a method parameter.
        /// </summary>
        /// <param name="parameterIndex">first parameter has index 1</param>
        public static void SetMethodParameterUsage(this ASTContext context,
            string className, string methodName, int parameterIndex, ParameterUsage usage)
        {
            if (parameterIndex <= 0 )
                 throw new ArgumentException("parameterIndex");

            var @class = context.FindCompleteClass(className);
            var method = @class.Methods.Find(m => m.Name == methodName);
            if (method == null)
                throw new ArgumentException("methodName");
            if (method.Parameters.Count < parameterIndex)
                throw new ArgumentException("parameterIndex");

            method.Parameters[parameterIndex - 1].Usage = usage;
        }
Example #10
0
        /// <summary>
        /// Sets the parameter usage for a function parameter.
        /// </summary>
        /// <param name="parameterIndex">first parameter has index 1</param>
        public static void SetFunctionParameterUsage(this ASTContext context,
            string functionName, int parameterIndex, ParameterUsage usage)
        {
            if (parameterIndex <= 0)
                throw new ArgumentException("parameterIndex");

            foreach (var function in context.FindFunction(functionName))
            {
                if (function.Parameters.Count < parameterIndex)
                    throw new ArgumentException("parameterIndex");

                function.Parameters[parameterIndex - 1].Usage = usage;
            }
        }
Example #11
0
 /// <summary>
 /// Sets the parameter usage for a method parameter.
 /// </summary>
 /// <param name="parameterIndex">first parameter has index 1</param>
 public static void SetMethodParameterUsage(this ASTContext context,
                                            string className, string methodName, int parameterIndex, ParameterUsage usage)
 {
     SetMethodParameterUsage(context, className, methodName, -1, parameterIndex, usage);
 }
Example #12
0
        /// <summary>
        /// Sets the parameter usage for a method parameter.
        /// </summary>
        /// <param name="parameterIndex">first parameter has index 1</param>
        public static void SetMethodParameterUsage(this ASTContext context,
                                                   string className, string methodName, int parameterIndex, ParameterUsage usage)
        {
            if (parameterIndex <= 0)
            {
                throw new ArgumentException("parameterIndex");
            }

            foreach (var @class in context.FindClass(className))
            {
                var method = @class.Methods.Find(m => m.Name == methodName);
                if (method == null)
                {
                    throw new ArgumentException("methodName");
                }
                if (method.Parameters.Count < parameterIndex)
                {
                    throw new ArgumentException("parameterIndex");
                }

                method.Parameters[parameterIndex - 1].Usage = usage;
            }
        }
Example #13
0
 public PackedInteger_10_6 this[ParameterUsage usage]
 {
     get { return(Values[(int)usage]); }
     set { Values[(int)usage] = value; }
 }
Example #14
0
 /// <summary>
 /// Sets the parameter usage for a method parameter.
 /// </summary>
 /// <param name="parameterIndex">first parameter has index 1</param>
 public static void SetMethodParameterUsage(this ASTContext context,
     string className, string methodName, int parameterIndex, ParameterUsage usage)
 {
     SetMethodParameterUsage(context, className, methodName, -1, parameterIndex, usage);
 }