Exemple #1
0
        public void Match()
        {
            var a = FSharpChoice <int, string> .NewChoice1Of2(1);

            var c = a.Match(i => 0, _ => 1);

            Assert.AreEqual(0, c);
        }
 private void SaveAndClose(bool isNewName)
 {
     if (isNewName)
     {
         Name = FSharpChoice <string, string> .NewChoice1Of2(SaveWithNewName);
     }
     else
     {
         Name = FSharpChoice <string, string> .NewChoice2Of2(RewriteExistScheduleName);
     }
 }
Exemple #3
0
        public static FSharpChoice <TR1, TR2> Transform <T1, T2, TR1, TR2>(this FSharpChoice <T1, T2> choice, Func <T1, TR1> func1, Func <T2, TR2> func2)
        {
            switch (choice.Tag)
            {
            case FSharpChoice <T1, T2> .Tags.Choice1Of2:
                return(FSharpChoice <TR1, TR2> .NewChoice1Of2(func1((choice.CastTo <FSharpChoice <T1, T2> .Choice1Of2>()).Item)));

            case FSharpChoice <T1, T2> .Tags.Choice2Of2:
                return(FSharpChoice <TR1, TR2> .NewChoice2Of2(func2((choice.CastTo <FSharpChoice <T1, T2> .Choice2Of2>()).Item)));
            }
            throw new InvalidOperationException();
        }
Exemple #4
0
        public void New()
        {
            var a = FSharpChoice.New1Of2 <int, string>(1);
            var b = FSharpChoice <int, string> .NewChoice1Of2(1);

            Assert.AreEqual(a, b);

            var c = FSharpChoice.New2Of2 <int, string>("a");
            var d = FSharpChoice <int, string> .NewChoice2Of2("a");

            Assert.AreEqual(c, d);
        }
Exemple #5
0
        private DiagramItem Transform(ANTLRv4Parser.LexerAltContext context)
        {
            var lexerElements = context.lexerElements().lexerElement().Select(Transform).Select(FSharpChoice <DiagramItem, string> .NewChoice1Of2);

            if (context.lexerCommands() != null)
            {
                return(new Sequence(lexerElements.Concat(new[] { FSharpChoice <DiagramItem, string> .NewChoice1Of2(TerminalWithClass("->", "rightArrows")) })
                                    .Concat(context.lexerCommands()
                                            .lexerCommand()
                                            .Select(x => TerminalWithClass(x.GetText(), "lexerCommands"))
                                            .Select(FSharpChoice <DiagramItem, string> .NewChoice1Of2))));
            }
            return(new Sequence(lexerElements));
        }
Exemple #6
0
        private static DiagramItem EBNFSuffix(ANTLRv4Parser.EbnfSuffixContext ebnfSuffix, DiagramItem element)
        {
            if (ebnfSuffix == null)
            {
                return(element);
            }
            switch (ebnfSuffix.GetText())
            {
            case "?":
                return(Optional(element, false));

            case "*":
            case "*?":
                return(ZeroOrMore(FSharpChoice <DiagramItem, string> .NewChoice1Of2(element),
                                  FSharpOption <FSharpChoice <DiagramItem, string> > .None, false));

            case "+":
                return(new OneOrMore(FSharpChoice <DiagramItem, string> .NewChoice1Of2(element),
                                     FSharpOption <FSharpChoice <DiagramItem, string> > .None));

            default:
                throw new InvalidOperationException("WTF?!");
            }
        }
Exemple #7
0
 public void Choice()
 {
     IsTrue(FSharpChoice <int, string> .NewChoice1Of2(1).IsChoice1Of2);
     Equal((FSharpChoice <int, string> .NewChoice1Of2(1) as FSharpChoice <int, string> .Choice1Of2).Item, 1);
 }
Exemple #8
0
        public void MatchAction()
        {
            var a = FSharpChoice <int, string> .NewChoice1Of2(1);

            a.Match(Console.WriteLine, _ => Assert.Fail("is string"));
        }
Exemple #9
0
 private static Diagram DiagramOf(DiagramItem item)
 => new Diagram(new[] { FSharpChoice <DiagramItem, string> .NewChoice1Of2(item) }, FSharpOption <ComplexityType> .None, noneString);