public override ReadResult <Integer> Read(ITextScanner scanner) { var result = innerLexer.Read(scanner); if (result.Success) { var integer = new Integer(result.Element); return(ReadResult <Integer> .FromResult(integer)); } var syntaxError = SyntaxError.FromReadResult(result, scanner.GetContext()); return(ReadResult <Integer> .FromSyntaxError(syntaxError)); }
public override ReadResult <Sign> Read(ITextScanner scanner) { var result = innerLexer.Read(scanner); if (result.Success) { var sign = new Sign(result.Element); return(ReadResult <Sign> .FromResult(sign)); } var syntaxError = SyntaxError.FromReadResult(result, scanner.GetContext()); return(ReadResult <Sign> .FromSyntaxError(syntaxError)); }
public override ReadResult <EndOfLine> Read(ITextScanner scanner) { if (scanner == null) { throw new ArgumentNullException(nameof(scanner)); } var result = innerLexer.Read(scanner); if (result.Success) { return(ReadResult <EndOfLine> .FromResult(new EndOfLine(result.Element))); } return(ReadResult <EndOfLine> .FromSyntaxError(SyntaxError.FromReadResult(result, scanner.GetContext()))); }