예제 #1
0
        public static ITextParser <Int32> Int32(this ITextParser parser)
        {
            if (parser == null)
            {
                throw new ArgumentNullException(nameof(parser));
            }

            var integerParser = parser.Char(char.IsDigit).Or(parser.Char('-')).OneOrMore();

            return(new ValueTypeParser <Int32>(integerParser, TryGetInt32));
        }
예제 #2
0
        public static ITextParser NewLine(this ITextParser parser)
        {
            if (parser == null)
            {
                throw new ArgumentNullException(nameof(parser));
            }

            return(parser.Char('\r')
                   .FirstOrDefault()
                   .Char('\n')
                   .Or(parser.Char('\x2028').Or(parser.Char('\x2029'))));
        }
예제 #3
0
        public static ITextParser SkipWhitespace(this ITextParser parser)
        {
            if (parser == null)
            {
                throw new ArgumentNullException(nameof(parser));
            }

            return(parser.Char(' ', '\t', '\r', '\n', '\x000C', '\x000B', '\x00A0', '\xFEFF').ZeroOrMore());
        }