public bool Out(out T value, out IMatched <T> original) { value = default; original = this; return(false); }
public Setter(string message, IMatched <Verb> verb, Block expression) { this.message = message; this.verb = verb; this.expression = expression; result = ""; typeName = ""; }
public IndexedSetter(string fieldName, Block index, IMatched <Verb> verb, Block expression, bool insert) { this.fieldName = fieldName; this.index = index; this.verb = verb; this.expression = expression; this.insert = insert; result = ""; typeName = ""; }
void handle(IMatched <T> match) { if (match.If(out var value, out var exception) && matched.If(out var action)) { action(value); }
public bool Else <TOther>(out IMatched <TOther> result) { result = failedMatch <TOther>(Exception); return(true); }
public bool WasMatched(out IMatched <T> matched) { matched = this; return(false); }
public IMatched <TResult> Select <TResult>(IMatched <T> result, Func <T, TResult> func) { return(failedMatch <TResult>(Exception)); }
public IMatched <TResult> Select <TResult>(IMatched <T> result, Func <T, TResult> func) => notMatched <TResult>();
public ClassSetter(string message, IMatched <Verb> verb, Block expression) : base(message, verb, expression) { }
public IMatched <T> Or(IMatched <T> other) => other;
public Assigment(IMatched <Verb> verb, Block expression) { Verb = verb; Expression = expression; }
public IndexedSetterMessage(string fieldName, string message, Block index, IMatched <Verb> verb, Block expression, bool insert) : base(fieldName, index, verb, expression, insert) => this.message = message;
public void IndexedSetterMessage(string fieldName, string message, Block index, IMatched <Verb> verb, Block expression, bool insert) => Verb(new IndexedSetterMessage(fieldName, message, index, verb, expression, insert));
public static MatchingContext <T> Matching <T>(this IMatched <T> matched) => new MatchingContext <T>(matched);
public void Setter(string fieldName, string message, IMatched <Verb> verb, Block expression) { Variable(fieldName); Setter(fieldName, verb, expression); }
public void Setter(string message, IMatched <Verb> verb, Block expression) => Verb(new Setter(message, verb, expression));
public MatchingContext(IMatched <T> matched) => this.matched = matched;
public Matching(IMatched <T> matched) { this.matched = matched; action = MonadFunctions.none <Func <TResult> >(); }
public bool Else <TOther>(out IMatched <TOther> result) { result = notMatched <TOther>(); return(true); }