logo
pub fn alternation<Input>(
    input: Input
) -> IResult<Input, Alternation<Input>, Error<Input>> where
    Input: Clone + Display + Offset + InputLength + InputTake + InputTakeAtPosition<Item = char> + Slice<RangeFrom<usize>> + InputIter + for<'s> Compare<&'s str>,
    <Input as InputIter>::Item: AsChar + Copy,
    Error<Input>: ParseError<Input>,
    for<'s> &'s str: FindToken<<Input as InputIter>::Item>, 
Expand description

Parses an alternation as defined in the grammar spec.

Grammar

alternation        = single-alternation, (`/`, single-alternation)+
single-alternation = ((text-in-alternative+, optional*)
                       | (optional+, text-in-alternative+))+

Example

left/right
left(opt)/(opt)right
escaped\ /text
no-need-to-escape)}/text
🦀/⚙️

Errors

Recoverable Error

  • If input doesn’t have /.

Irrecoverable Failure