Esempio n. 1
0
        private static ArgumentDisplay GetArgumentsForDisplay(IPositionalArgument arg)
        {
            var names = new List <string>();

            if (arg.MetaVar != null)
            {
                names.Add(arg.MetaVar);
            }
            return(GetArgumentsForDisplay(names, arg));
        }
            private void HandlePositional(string arg)
            {
                this.CheckThatThereIsAPositionalArgumentPending();

                IPositionalArgument positionalArgument = this.positionalArguments.Dequeue();

                positionalArgument.Handle(arg);

                this.required.Remove(positionalArgument);
            }
Esempio n. 3
0
        /// <summary>
        /// Compares two positional arguments.
        /// </summary>
        /// <param name="argument1">The first argument.</param>
        /// <param name="argument2">The second argument.</param>
        public static bool IsPositionalArgumentEqual(IPositionalArgument argument1, IPositionalArgument argument2)
        {
            if (argument1 == null)
            {
                throw new ArgumentNullException(nameof(argument1));
            }
            if (argument2 == null)
            {
                throw new ArgumentNullException(nameof(argument2));
            }

            bool Result = true;

            Result &= Expression.IsExpressionEqual((IExpression)argument1.Source, (IExpression)argument2.Source);

            return(Result);
        }
Esempio n. 4
0
        private static bool ValidatePositionalStyle(IList <IArgument> argumentList, List <IExpressionType> mergedArgumentList, IErrorList errorList)
        {
            for (int i = 0; i < argumentList.Count; i++)
            {
                IPositionalArgument Argument = argumentList[i] as IPositionalArgument;
                Debug.Assert(Argument != null);
                IExpression Source = (IExpression)Argument.Source;

                for (int j = 0; j < Argument.ResolvedResult.Item.Count; j++)
                {
                    IExpressionType Item = Argument.ResolvedResult.Item.At(j);
                    Item.SetSource(Source, j);
                    mergedArgumentList.Add(Item);
                }
            }

            return(true);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="CSharpPositionalArgument"/> class.
 /// </summary>
 /// <param name="context">The creation context.</param>
 /// <param name="source">The Easly argument from which the C# argument is created.</param>
 protected CSharpPositionalArgument(ICSharpContext context, IPositionalArgument source)
     : base(context, source)
 {
     IExpression ArgumentSource = (IExpression)source.Source;
     SourceExpression = CSharpExpression.Create(context, ArgumentSource);
 }
 /// <summary>
 /// Creates a new C# argument.
 /// </summary>
 /// <param name="context">The creation context.</param>
 /// <param name="source">The Easly argument from which the C# argument is created.</param>
 public static ICSharpPositionalArgument Create(ICSharpContext context, IPositionalArgument source)
 {
     return new CSharpPositionalArgument(context, source);
 }