Beispiel #1
0
        public override Verb CreateVerb(string[] tokens)
        {
            var lengthLessBracket = length - 1;

            Color(position, lengthLessBracket, IDEColor.EntityType.Operators);
            var parser = new LambdaParser();

            if (parser.Scan(source, position + lengthLessBracket))
            {
                Conditional      = new Conditional((Lambda)parser.Result.Value);
                overridePosition = parser.Result.Position;
            }
            else
            {
                Conditional = new Unconditional();
            }
            return(new NullOp());
        }
        public override Verb CreateVerb(string[] tokens)
        {
            var tokens1Length = tokens[1].Length;

            Color(position, tokens1Length, Whitespaces);
            var        index = position + tokens1Length;
            Block      block;
            Parameters parameters;
            var        returnValue = true;

            if (blockParser.Scan(source, index))
            {
                if (blockParser.Value is Lambda lambda)
                {
                    block      = lambda.Block;
                    parameters = lambda.Parameters;
                }
                else
                {
                    block      = (Block)blockParser.Value;
                    parameters = new NullParameters();
                }

                index = blockParser.Result.Position;
            }
            else
            {
                return(null);
            }

            if (index < source.Length && source.Substring(index, 1) == ".")
            {
                index++;
                returnValue = false;
            }

            overridePosition = index;
            Replacement      = new BlockReplacement(block, parameters, returnValue);
            return(new NullOp());
        }