Example #1
0
 public void TestIncompleteAssignment()
 {
     using (var reader = new StringReader("value="))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             Assert.Throws <EndOfDocumentException>(() => parser.ParseUnit());
         }
 }
Example #2
0
 public void TestNewlineInAssignmentStrongParsing()
 {
     using (var reader = new StringReader("value=\n10"))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             Assert.Throws <InvalidTokenException>(() => parser.ParseUnit());
         }
 }
Example #3
0
 public void TestInvalidLeftAssignment()
 {
     using (var reader = new StringReader("10=10"))
         using (var parser = new Parser.Parser(reader, IniOptions.Default))
         {
             Assert.Throws <InvalidUnitException>(() => parser.ParseUnit());
         }
 }
Example #4
0
        public void TestNewlineInAssignmentFlexibleParsing()
        {
            var options = new IniOptions(propertyParsing: PropertyParsing.Flexible);

            using (var reader = new StringReader("value=\n10"))
                using (var parser = new Parser.Parser(reader, options))
                {
                    Assert.Throws <InvalidTokenException>(() => parser.ParseUnit());
                }
        }
Example #5
0
        private Unit ParseNext()
        {
            var nextUnit = parser.ParseUnit();

            switch (nextUnit)
            {
            default:
                throw new InvalidUnitException(nextUnit, typeof(SectionUnit), typeof(AssignmentUnit));

            case SectionUnit section:
                StartSection(section, Options);
                break;

            case AssignmentUnit assignment:
                AddProperty(assignment, Options);
                break;
            }

            return(nextUnit);
        }