示例#1
0
        public static TextParser <Int32> Int32(this TextParser 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 TextParser NewLine(this TextParser 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 TextParser SkipWhitespace(this TextParser parser)
        {
            if (parser == null)
            {
                throw new ArgumentNullException(nameof(parser));
            }

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