Label
Fixtype of labels [C:6.8.1] [C:A.2.3].
This is a tagged union type, introduced by fty::deftagsum.
Member Tags → Types
- :name → label-name
- :casexpr → label-casexpr
- :default → label-default
This does not directly correspond to
any nonterminal in the grammar in [C],
but it captures the three initial portions of
the grammar rule for labeled-statement.
There are three possible kinds of labels:
names (identifiers),
constant expressions in case,
and the default label.
As a GCC extension,
we allow an optional additional constant expression in case,
to capture ranges (see ABNF grammar).
Subtopics
- Label-case
- Case macro for the different kinds of label structures.
- Label-equiv
- Basic equivalence relation for label structures.
- Labelp
- Recognizer for label structures.
- Label-casexpr
- Label-name
- Label-default
- Label-kind
- Get the kind (tag) of a label structure.
- Label-fix
- Fixing function for label structures.
- Label-count
- Measure for recurring over label structures.