コード例 #1
0
ファイル: Program.cs プロジェクト: damphat/Sigobase
 private static void LoadConfiguration()
 {
     try {
         config  = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
         context = Sigo.Parse(config.AppSettings.Settings["context"].Value);
     } catch (Exception) {
         // ignored
     }
 }
コード例 #2
0
        public void Object_separatorTests(string src)
        {
            string Clean(string src)
            {
                src = src
                      .Replace(' ', ',')
                      .Replace(';', ',')
                      .Replace("}", ",}");
                src = src.Replace(",,", ",").Replace(",,", ",");
                return(src);
            }

            SigoAssert.Equal(Sigo.Parse(Clean(src)), Sigo.Parse(src));
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: damphat/Sigobase
        private static void Main(string[] args)
        {
            Thread.CurrentThread.CurrentCulture = new CultureInfo("vi-vn");
            LoadConfiguration();
            Console.CancelKeyPress += (sender, e) => SaveConfiguration();

            Console.WriteLine("Welcome to sigo REPL.");
            while (true)
            {
                Console.Write("sigo> ");
                var src = Console.ReadLine();
                if (src == null)
                {
                    return;
                }

                if (src == "")
                {
                    continue;
                }

                if (src == "exit")
                {
                    SaveConfiguration();
                    return;
                }

                if (src == "dir")
                {
                    foreach (var(k, v) in context)
                    {
                        Console.WriteLine($"{k}: {v}");
                    }

                    continue;
                }

                if (src == "cls" || src == "clear")
                {
                    Console.Clear();
                    continue;
                }

                try {
                    Console.WriteLine(Sigo.Parse(src, context, out context).ToString(DefaultWriter));
                } catch (Exception e) {
                    Console.Error.WriteLine(e.Message);
                }
            }
        }
コード例 #4
0
 public void TODO_SelectTest()
 {
     Sigo.Parse("select{name:{first, last}, friends:{0, 2, 4}}");
 }
コード例 #5
0
 public void TODO_Assign_to_literal(string name)
 {
     SigoAssert.ThrowsAny <Exception>(() => Sigo.Parse(name + " = 1"));
 }
コード例 #6
0
 public void Object_emptyTests(SigoWraper wraper)
 {
     SigoAssert.Equal(wraper.Sigo, Sigo.Parse(wraper.ToString()));
 }
コード例 #7
0
 public void Leaf_stringQuoteTests(string src, string value)
 {
     SigoAssert.Equal(Sigo.From(value), Sigo.Parse(src));
 }
コード例 #8
0
 public void Leaf_boolTests(string src, bool value)
 {
     SigoAssert.Equal(Sigo.From(value), Sigo.Parse(src));
 }
コード例 #9
0
 public void TODO_PathAsString(string src, string expect)
 {
     SigoAssert.Equal(Sigo.Parse(expect), Sigo.Parse(src));
 }
コード例 #10
0
        public void Leaf_numberTests(string src)
        {
            var num = double.Parse(src, CultureInfo.InvariantCulture);

            SigoAssert.Equal(Sigo.From(num), Sigo.Parse(src));
        }
コード例 #11
0
 public void TODO_ExpressionTest()
 {
     Sigo.Parse("(1+2)*3");
 }
コード例 #12
0
 public void TODO_MergeTest()
 {
     Sigo.Parse("{name: 'Phat'} | {0, age: 10}");
 }
コード例 #13
0
 public void TODO_ContextTest(string a, string b)
 {
     SigoAssert.Equal(Sigo.Parse(a), Sigo.Parse(b));
 }
コード例 #14
0
 public void TODO_ArrayErrorTest(string src)
 {
     SigoAssert.ThrowsAny <Exception>(() => Sigo.Parse(src));
 }
コード例 #15
0
 public void Object_errorTests(string src)
 {
     SigoAssert.ThrowsAny <Exception>(() => Sigo.Parse(src));
 }
コード例 #16
0
 public void TODO_ArrayTest(string src, string expect)
 {
     SigoAssert.Equal(Sigo.Parse(expect), Sigo.Parse(src));
 }
コード例 #17
0
        public void Object_pathTest()
        {
            var expected = Sigo.Create(3, "name", Sigo.Create(3, "first", 1, "last", 2));

            SigoAssert.Equal(expected, Sigo.Parse("{name/first:1, name/last:2}"));
        }