Пример #1
0
 public NamedValue(string name, IValueToken value)
 {
     Tokens.Add(new AtomToken(name));
     Tokens.Add(new CommaToken());
     Tokens.Add(new WhitespaceToken(" "));
     Tokens.Add((ParserToken) value);
 }
Пример #2
0
 public void AddValue(IValueToken valueToken)
 {
     if (valueToken is ValueToken value)
     {
         this.valueToken = value;
     }
     else
     {
         throw new ArgumentException();
     }
 }
Пример #3
0
 public void AddValue(IValueToken valueToken)
 {
     if (valueToken is ValuesGroupToken group)
     {
         values.AddRange(group.Tokens.OfType <ValueToken>());
     }
     else
     {
         values.Add(valueToken as ValueToken);
     }
 }
Пример #4
0
        public static bool Available(List <IValueToken> tokens, IValueToken token)
        {
            if (!tokens.Any())
            {
                return(true);
            }

            if (token.MutuallyExclusive)
            {
                return(false);
            }

            return(!tokens.Any(x => x.MutuallyExclusive && x.MutuallyExclusiveFlags.ContainsAny(token.MutuallyExclusiveFlags)));
        }
        public CorrectValueRuleNodeState(
            VerifiableMemberContract contract,
            IGroupedValueToken groupedToken,
            IValueToken currentTokenPtr,
            ConditionOps implicitNextOps = ConditionOps.Break
            )
        {
            _contract = contract;

            _rootNode        = groupedToken;
            _workingNode     = groupedToken;
            _currentTokenPtr = currentTokenPtr;

            _nextOps = implicitNextOps;
        }
Пример #6
0
        public void AddValue(IValueToken token)
        {
            var info = typeInfo.GetValueInfoAt(usedValuesNumber) ?? typeInfo.Values.Last();

            if (!info.IsCollection || assignedValues.Last() is CollectionParser)
            {
                assignedValues.Add(new SingleValueParser(info, (IValueConverter)info.ChooseConverter(convertersFactory)));
            }
            else
            {
                assignedValues.Add(new CollectionParser(info, (CollectionConverter)info.ChooseConverter(convertersFactory)));
            }
            assignedValues.Last().AddValue(token);
            usedValuesNumber++;
        }
Пример #7
0
 protected void HandleValue(IValueToken token)
 {
     if (builder.LastOption?.AcceptsValue ?? false)
     {
         builder.LastOption.AddValue(token);
     }
     else if (builder.AwaitsValue)
     {
         builder.AddValue(token);
     }
     else
     {
         throw new ArgumentException("This type does not accept any more values.");
     }
 }
Пример #8
0
 public UnknownTokenValueException(IValueToken token)
     : base($"Unknown value `{token.Value}`", token.CharAt)
 {
 }
Пример #9
0
 public AssignedValueToken(IOptionToken option, IValueToken value)
 {
     Option = option;
     Value  = value;
 }