示例#1
0
        public override ILexer <HttpVersion> Create()
        {
            var digit      = DigitLexerFactory.Create();
            var innerLexer = Concatenation.Create(
                HttpNameLexerFactory.Create(),
                Terminal.Create(@"/", StringComparer.Ordinal),
                digit,
                Terminal.Create(@".", StringComparer.Ordinal),
                digit);

            return(new HttpVersionLexer(innerLexer));
        }
示例#2
0
 public void ReadSuccess(string input)
 {
     var factory = new DigitLexerFactory(new ValueRangeLexerFactory());
     var digitLexer = factory.Create();
     using (var scanner = new TextScanner(new StringTextSource(input)))
     {
         var result = digitLexer.Read(scanner);
         Assert.NotNull(result);
         Assert.True(result.Success);
         Assert.NotNull(result.Element);
         Assert.Equal(input, result.Element.Text);
     }
 }
示例#3
0
 public void ReadSuccess(string input)
 {
     var valueRangeLexerFactory = new ValueRangeLexerFactory();
     var digitLexerFactory = new DigitLexerFactory(valueRangeLexerFactory);
     var terminalLexerFactory = new TerminalLexerFactory();
     var alternativeLexerFactory = new AlternativeLexerFactory();
     var factory = new HexadecimalDigitLexerFactory(digitLexerFactory, terminalLexerFactory, alternativeLexerFactory);
     var lexer = factory.Create();
     using (var scanner = new TextScanner(new StringTextSource(input)))
     {
         var result = lexer.Read(scanner);
         Assert.NotNull(result);
         Assert.True(result.Success);
         Assert.NotNull(result.Element);
         Assert.Equal(input, result.Element.Text);
     }
 }