示例#1
0
        public void Check_Two_Root_Nodes_With_Alias()
        {
            const string localeContent = @"
default: &DEFAULT
  default: Default Value

parent1:
  child1: Child1 Value
  <<: *DEFAULT

parent2:
  child2: Child2 Value
  <<: *DEFAULT
";
            var          parser        = new YParser(localeContent);
            var          valueChild1   = parser.FindValue("parent1.child1");
            var          valueDefault1 = parser.FindValue("parent1.default");
            var          valueChild2   = parser.FindValue("parent2.child2");
            var          valueDefault2 = parser.FindValue("parent2.default");

            Assert.AreEqual("Child1 Value", valueChild1);
            Assert.AreEqual("Child2 Value", valueChild2);
            Assert.AreEqual("Default Value", valueDefault1);
            Assert.AreEqual("Default Value", valueDefault2);
        }
示例#2
0
        public void Check_Hard_Mapping_2()
        {
            const string localeContent = @"
parent:
    Title: En TitleValue
    Locale: en
    Buttons:
        SubmitButton: En SubmitButtonValue
    Test1:
        Test2:
            Test3: Test3 Value

        Test4: Test4 Value
        # Test Comment
        Test5:
            Test6: Test5 Value
            Test7:
                Test8: Test8 Value
       
";
            var          parser        = new YParser(localeContent);
            var          valueTest3    = parser.FindValue("parent.Test1.Test2.Test3");
            var          valueTest8    = parser.FindValue("parent.Test1.Test5.Test7.Test8");

            Assert.AreEqual("Test3 Value", valueTest3);
            Assert.AreEqual("Test8 Value", valueTest8);
        }
示例#3
0
        public void Check_Mapping()
        {
            const string localeContent = @"
parent:
    child: value
";
            var          parser        = new YParser(localeContent);
            var          value         = parser.FindValue("parent.child.value");

            Assert.NotNull(value);
        }
示例#4
0
        public void Check_Parser()
        {
            const string localeContent = @"
parent:
    child: value
";

            var parser = new YParser(localeContent);
            var value  = parser.FindValue("parent.child");

            Assert.AreEqual("value", value);
        }
示例#5
0
        public void Check_Nested_Mapping()
        {
            const string localeContent = @"
parent:
    child: value
    nested_map:
        nested_key: nested_value
";
            var          parser        = new YParser(localeContent);
            var          value         = parser.FindValue("parent.nested_map.nested_key");

            Assert.AreEqual("nested_value", value);
        }
示例#6
0
        public void Check_RootSequence()
        {
            const string localeContent = @"
sequence:
    - child_1
    - child_2
    - child_3
";
            var          parser        = new YParser(localeContent);
            var          value         = parser.FindValue("sequence.child_3");

            Assert.NotNull(value);
        }
示例#7
0
        public void Check_Hard_Mapping_1()
        {
            const string localeContent = @"
parent:
  Test1:
    Test2:
      Test3: Test3
";
            var          parser        = new YParser(localeContent);
            var          value         = parser.FindValue("parent.Test1.Test2.Test3");

            Assert.AreEqual("Test3", value);
        }
示例#8
0
        public gui_mesh_button(DXGui gui, String s, String fname, int id, int x, int y, int dx, int dy) :
            base(gui, s, x, y, dx, dy, id)
        {
            YParser yparser = new YParser();

            yparser.FromFile(fname);
            mesh = yparser.Mesh;

            mesh.AutoTransformEnable = false;
            size          = mesh.BoundingBox.calculateSize();
            seleccionable = true;
            item3d        = true;
        }
示例#9
0
        public void Check_Alias()
        {
            const string localeContent = @"
buttons: &BUTTONS
  alias_button: AliasButton 

parent:
    child: value
    <<: *BUTTONS
";
            var          parser        = new YParser(localeContent);
            var          value         = parser.FindValue("parent.alias_button");

            Assert.AreEqual("AliasButton", value);
        }
示例#10
0
        public void Check_Nested_Alias()
        {
            const string localeContent = @"
default: &DEFAULT
    default: Default Value
parent:
  Test1:
    Test2:
      Test3: Test3
    <<: *DEFAULT
";
            var          parser        = new YParser(localeContent);
            var          valueDefault  = parser.FindValue("parent.Test1.default");

            Assert.AreEqual("Default Value", valueDefault);
        }
示例#11
0
        public void Check_MultipleContents()
        {
            const string localeContent1 = @"
parent:
    child: value1
";

            const string localeContent2 = @"
parent:
    child: value2
";

            var parser = new YParser(localeContent1, localeContent2);
            var value  = parser.FindValue("parent.child");

            Assert.AreEqual("value2", value);
        }
示例#12
0
        public void Check_Two_Root_Nodes()
        {
            const string localeContent = @"
parent1:
  child1: Child1 Value

parent2:
  child2: Child2 Value

";
            var          parser        = new YParser(localeContent);
            var          valueChild1   = parser.FindValue("parent1.child1");
            var          valueChild2   = parser.FindValue("parent2.child2");

            Assert.AreEqual("Child1 Value", valueChild1);
            Assert.AreEqual("Child2 Value", valueChild2);
        }
示例#13
0
        public void Check_Skip_Comments()
        {
            const string localeContent = @"
# Comment 1
parent:
  # Comment 2
  Test1:
    # Comment 3
    Test2:
      # Comment 4
      Test3: Test3 Value
    # Comment 5
    Test4: Test4 Value
";
            var          parser        = new YParser(localeContent);
            var          valueTest3    = parser.FindValue("parent.Test1.Test2.Test3");
            var          valueTest4    = parser.FindValue("parent.Test1.Test4");

            Assert.AreEqual("Test3 Value", valueTest3);
            Assert.AreEqual("Test4 Value", valueTest4);
        }
示例#14
0
        private CompletionDataList GenerateCompletionDataList()
        {
            var solutionProjects = IdeApp.ProjectOperations.CurrentSelectedSolution.Items;

            var completitionDataList = new CompletionDataList();

            foreach (var project in solutionProjects)
            {
                var files     = project.GetItemFiles(true);
                var yamlFiles =
                    from file in files
                    where file.Extension == ".yaml"
                    select file.FullPath;

                var fileContents = new List <string>();

                foreach (var yamlFile in yamlFiles)
                {
                    fileContents.Add(File.ReadAllText(yamlFile.FullPath.ToString()));
                }

                var parser = new YParser(fileContents.ToArray());

                completitionDataList.AddRange(
                    parser.map.Select(
                        x => new CompletionData(x.Key)
                {
                    DisplayFlags       = DisplayFlags.DescriptionHasMarkup,
                    CompletionCategory = new YamlFileCompletionCategory(project.Name),
                    //Description = project.Name
                    Description = $"<markup><tt>{project.Name}</tt> – <big>{x.Value}</big></markup>"
                }
                        )
                    );
            }

            return(completitionDataList);
        }
示例#15
0
        public void Check_Nested_Alias_With_Mapping()
        {
            const string localeContent = @"
default: &DEFAULT
  default: Default Value
  def_mapping:
    key_mapping1:
      nested_key_mapping:
        nested_nested_key: Nested Key Key
    key_mapping2:
      nested_key_mapping: Nested Key
    
parent:
  Test1:
    Test2:
      Test3: Test3
    <<: *DEFAULT
";
            var          parser        = new YParser(localeContent);
            var          valueDefault  = parser.FindValue("parent.Test1.def_mapping.key_mapping2.nested_key_mapping");

            Assert.AreEqual("Nested Key", valueDefault);
        }
示例#16
0
        /// <summary>
        /// Lexing aka Tokenizing and parsing the assembly.
        /// </summary>
        private bool FirstPass(StreamReader readStream)
        {
            bool   BuildSuccessful = true;
            int    LineNumber      = 0;
            string CurrentLine;

            Token[] currentTokens;
            Console.WriteLine("Lexical analysis and parsing...");
            while (!readStream.EndOfStream)
            {
                CurrentLine = String.Empty;
                CurrentLine = readStream.ReadLine();
                CurrentLine.Trim();
                LineNumber += 1;

                if (CurrentLine == String.Empty)
                {
                    continue;
                }

                try
                {
                    //FIRST PASS
                    currentTokens = YParser.ParseString(CurrentLine);
                    if (currentTokens == null || currentTokens.Length == 0)
                    {
                        continue;
                    }
                    YFile.AddLine(currentTokens);
                }
                catch (FoundUnexpectedToken e)
                {
                    //Console.WriteLine("ERROR : Unexpected Token " + e.token1.Text + " On Line : " + LineNumber + "|" + CurrentLine);
                    if (e.token1 != null)
                    {
                        Console.WriteLine($"ERROR : Unexpected Token {e.token1.Text} On Line : {LineNumber} | {CurrentLine}");
                    }
                    else
                    {
                        Console.WriteLine($"ERROR : Unexpected Token On Line : {LineNumber} | {CurrentLine}");
                    }
                }
                catch (AssemblerException e)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("ERROR at stage : " + Enum.GetName(typeof(EnumAssemblerStages), e._stage) + " " + e.Message);
                    BuildSuccessful = false;
                }
                catch (TokenAccessException e)
                {
                    BuildSuccessful = false;

                    Console.ForegroundColor = ConsoleColor.Red;
                    if (e._Tkn != null)
                    {
                        Console.WriteLine("ERROR accessing token: " + e.Message);
                        Console.WriteLine(e._Tkn.TokenInfoString());
                    }
                    else
                    {
                        Console.WriteLine("ERROR accessing token: " + e.Message);
                    }
                }
                catch (Exception e)
                {
                    BuildSuccessful = false;

                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine(e.Message);
                }
                finally
                {
                    Console.ResetColor();
                }
            }

            return(BuildSuccessful);
        }