public override ILexer <PathRootless> Create() { var innerLexer = Concatenation.Create( SegmentNonZeroLengthLexerFactory.Create(), Repetition.Create( Concatenation.Create( Terminal.Create(@"/", StringComparer.Ordinal), SegmentLexerFactory.Create()), 0, int.MaxValue)); return(new PathRootlessLexer(innerLexer)); }
public override ILexer <PathNoScheme> Create() { // segment-nz-nc *( "/" segment ) var innerLexer = Concatenation.Create( SegmentNonZeroLengthNoColonsLexerFactory.Create(), Repetition.Create( Concatenation.Create( Terminal.Create(@"/", StringComparer.Ordinal), SegmentLexerFactory.Create()), 0, int.MaxValue)); // path-noscheme return(new PathNoSchemeLexer(innerLexer)); }
public override ILexer <PathAbsolute> Create() { // "/" [ segment-nz *( "/" segment ) ] var innerLexer = Concatenation.Create( Terminal.Create(@"/", StringComparer.Ordinal), Option.Create( Concatenation.Create( SegmentNonZeroLengthLexerFactory.Create(), Repetition.Create( Concatenation.Create( Terminal.Create(@"/", StringComparer.Ordinal), SegmentLexerFactory.Create()), 0, int.MaxValue)))); // path-absolute return(new PathAbsoluteLexer(innerLexer)); }