Exemplo n.º 1
0
        public static List <IRacketObject>?ParseAny(string str)
        {
            string[]             args      = str.Split(" ");
            List <IRacketObject> arguments = new List <IRacketObject>();

            string predicate = "";

            for (int i = 0; i < args.Length; i++)
            {
                string        currentToken    = predicate + args[i];
                IRacketObject?newRacketObject = RacketBoolean.Parse(currentToken)
                                                ?? RacketNumber.Parse(currentToken) ?? RacketString.Parse(currentToken) ?? (IRacketObject?)RacketExpression.Parse(currentToken);

                if (newRacketObject != null)
                {
                    arguments.Add(newRacketObject);
                    predicate = "";
                    continue;
                }
                predicate += $"{args[i]} ";
            }

            if (predicate != "")
            {
                return(null);
            }
            return(arguments);
        }
Exemplo n.º 2
0
        public override RacketBoolean Evaluate()
        {
            RacketBoolean currentBool = (RacketBoolean)arguments[0].Evaluate();
            bool          retValue    = currentBool.Value;

            for (int i = 1; i < arguments.Count; i++)
            {
                currentBool = (RacketBoolean)arguments[i].Evaluate();
                retValue    = retValue || currentBool.Value;
            }
            return(new RacketBoolean(retValue));
        }
Exemplo n.º 3
0
        public override RacketBoolean Evaluate()
        {
            RacketBoolean currentBool = (RacketBoolean)arguments[0].Evaluate();

            return(new RacketBoolean(!currentBool.Value));
        }