public override Verb CreateVerb(string[] tokens) { Color(position, tokens[1].Length, KeyWords); Color(tokens[2].Length, Structures); var index = position + length; return(GetExpression(source, index, Stop.CloseParenthesis()).FlatMap(t => { (var b, var i) = t; var block = WhereFilter(b); RejectNull(block, VerboseName, "Where filter malformed"); overridePosition = i; result.Value = block; return new Where(block); }, () => null)); }
public override Verb CreateVerb(string[] tokens) { Color(position, tokens[1].Length, KeyWords); Color(tokens[2].Length, Structures); var index = position + length; return(GetExpression(source, index, Stop.CloseParenthesis()).Map(t => { var(b, i) = t; var block = WhereFilter(b); block.Must().Not.BeNull().OrThrow(VerboseName, () => "Where filter malformed"); overridePosition = i; result.Value = block; return new Where(block); }).DefaultTo(() => null)); }