Example #1
0
        public void Object_separator_flag(string a, string b)
        {
            var sa = SigoSchema.Parse(a);
            var sb = SigoSchema.Parse(b);

            SigoAssert.Equal(sa.Count(), sb.Count());
        }
Example #2
0
 public static IEnumerable <object[]> ObjectData(string schema = null)
 {
     schema ??= @"
         name = {03, first:'a', last?:'b'};
         user = {03, name?, age?: 1};
         // return
         user";
     return(SigoSchema.Parse(schema).Generate().Select(s => new[] { new SigoWraper(s) }));
 }
Example #3
0
        private static void Main()
        {
            var statements = new List <string> {
                "    string = 'usd'|'eur'",
                "    number = 1|2|3",
                "    bool = true|false",
                "    account = {kind: string, amount?: number}"
            };

            // eval the initial statements
            foreach (var statement in statements)
            {
                SigoSchema.Parse(statement);
            }

            ShowSchemasAndHelp();

            while (true)
            {
                Console.Write("schema>");
                var src = Console.ReadLine();
                switch (src)
                {
                case null:
                case "":
                    continue;

                case "?":
                case "help": {
                    ShowSchemasAndHelp();
                    continue;
                }

                case "exit":
                case "quit":
                    return;

                default: {
                    try {
                        var schema = SigoSchema.Parse(src);
                        if (schema.Count() == 0)
                        {
                            continue;
                        }

                        GenerateAllPossibleValues(schema);
                    } catch (Exception e) {
                        Console.Error.WriteLine(e.Message);
                    }

                    break;
                }
                }
            }
        }
Example #4
0
        private SigoSchema ParseAssignment()
        {
            var key = t.Raw;

            Next();
            Next();
            var value = ParseOr();

            SigoSchema.SetType(key, value);

            ReadKind(Kind.SemiColon);
            return(Nothing);
        }
Example #5
0
        private static void GenerateAllPossibleValues(SigoSchema schema)
        {
            var count  = 0;
            var values = schema.Generate(GenerateOptions.UniqueSorted);

            Console.WriteLine("---------------------------------");
            foreach (var value in values)
            {
                Console.WriteLine(value.ToString(Writer.Default));
                count++;
            }

            Console.WriteLine("---------------------------------");
            Console.WriteLine($"{count} items.");
        }
Example #6
0
 public FieldInfo(SigoSchema schema, bool optional)
 {
     this.schema   = schema;
     this.optional = optional;
 }
Example #7
0
 public void Add(string key, SigoSchema schema, in bool optional)
Example #8
0
 public void UniqueTest()
 {
     SigoAssert.Equal(Leafs(2, 0), SigoSchema.Parse(src).Generate(GenerateOptions.Unique));
 }
Example #9
0
 public void UniqueSortedTest()
 {
     SigoAssert.Equal(Leafs(0, 2), SigoSchema.Parse(src).Generate(GenerateOptions.UniqueSorted));
 }
Example #10
0
 private static IList <ISigo> Gen(string src)
 {
     return(SigoSchema.Parse(src).Generate().ToList());
 }