コード例 #1
0
        public bool Out(out T value, out IMatched <T> original)
        {
            value    = default;
            original = this;

            return(false);
        }
コード例 #2
0
ファイル: Setter.cs プロジェクト: toddcoder/Orange
 public Setter(string message, IMatched <Verb> verb, Block expression)
 {
     this.message    = message;
     this.verb       = verb;
     this.expression = expression;
     result          = "";
     typeName        = "";
 }
コード例 #3
0
ファイル: IndexedSetter.cs プロジェクト: toddcoder/Orange2
 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        = "";
 }
コード例 #4
0
 void handle(IMatched <T> match)
 {
     if (match.If(out var value, out var exception) && matched.If(out var action))
     {
         action(value);
     }
コード例 #5
0
 public bool Else <TOther>(out IMatched <TOther> result)
 {
     result = failedMatch <TOther>(Exception);
     return(true);
 }
コード例 #6
0
 public bool WasMatched(out IMatched <T> matched)
 {
     matched = this;
     return(false);
 }
コード例 #7
0
 public IMatched <TResult> Select <TResult>(IMatched <T> result, Func <T, TResult> func)
 {
     return(failedMatch <TResult>(Exception));
 }
コード例 #8
0
 public IMatched <TResult> Select <TResult>(IMatched <T> result, Func <T, TResult> func) => notMatched <TResult>();
コード例 #9
0
ファイル: ClassSetter.cs プロジェクト: toddcoder/Orange
 public ClassSetter(string message, IMatched <Verb> verb, Block expression)
     : base(message, verb, expression)
 {
 }
コード例 #10
0
 public IMatched <T> Or(IMatched <T> other) => other;
コード例 #11
0
ファイル: AssignParser.cs プロジェクト: toddcoder/Orange
 public Assigment(IMatched <Verb> verb, Block expression)
 {
     Verb       = verb;
     Expression = expression;
 }
コード例 #12
0
 public IndexedSetterMessage(string fieldName, string message, Block index, IMatched <Verb> verb, Block expression,
                             bool insert)
     : base(fieldName, index, verb, expression, insert) => this.message = message;
コード例 #13
0
 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));
コード例 #14
0
 public static MatchingContext <T> Matching <T>(this IMatched <T> matched) => new MatchingContext <T>(matched);
コード例 #15
0
 public void Setter(string fieldName, string message, IMatched <Verb> verb, Block expression)
 {
     Variable(fieldName);
     Setter(fieldName, verb, expression);
 }
コード例 #16
0
 public void Setter(string message, IMatched <Verb> verb, Block expression) => Verb(new Setter(message, verb, expression));
コード例 #17
0
 public MatchingContext(IMatched <T> matched) => this.matched = matched;
コード例 #18
0
ファイル: Matching.cs プロジェクト: toddcoder/Core-code
 public Matching(IMatched <T> matched)
 {
     this.matched = matched;
     action       = MonadFunctions.none <Func <TResult> >();
 }
コード例 #19
0
 public bool Else <TOther>(out IMatched <TOther> result)
 {
     result = notMatched <TOther>();
     return(true);
 }