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()); }