src/Parsley/Grammar.cs
/// <summary>
/// Optional(p) is equivalent to p whenever p succeeds or when p fails after consuming input.
/// If p fails without consuming input, Optional(p) succeeds.
/// </summary>
Optional(p) is equivalent to p whenever p succeeds or when p fails after consuming input.
If p fails without consuming input, Optional(p) succeeds.
Optional ( p ) is equivalent to p whenever p succeeds or when p fails after consuming input . If p fails without consuming input Optional ( p ) succeeds .
public static Parser<T> Optional<T>(Parser<T> parser)
        {
            var nothing = default(T).SucceedWithThisValue();
            return Choice(parser, nothing);
        }
public static Parser < T > Optional < T > ( Parser < T > parser ) { var nothing = default ( T ) . SucceedWithThisValue ( ) ; return Choice ( parser , nothing ) ; }
Optional(p) is equivalent to p whenever p succeeds or when p fails after consuming input.
Optional ( p ) is equivalent to p whenever p succeeds or when p fails after consuming input .
parser
Parser<T>