Skip to content

\ifcase

yex.keyword.Ifcase(parser) #

Source code in yex/keyword/conditional.py
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
@conditional
def Ifcase(
        parser: yex.parse.Parser,
        ) -> None:
    doc = parser.doc

    logger.debug(r"\ifcase: looking for number")
    number = int(yex.value.Number.from_parser(parser))
    logger.debug(r"\ifcase: number is %s", number)

    doc.get_control(r'\tracingcommands').notice_conditional(fr'\ifcase')
    doc.get_control(r'\tracingcommands').notice_conditional(f'case {number}')

    case = _Case(
            number = number,
            doc = doc,
            )
    doc.ifdepth.append(case)

    logger.debug(r"\ifcase: %s", case)

    if number!=0:
        logger.debug(r"\ifcase on %d; skipping",
                number)

    return None