1.1 Rule Inlining type

Every rule besides type (and the ones in the OutOfSight group) is inlined and all parentheses have been removed. The result is:

type
    :    type_name
    |    simple_type
    |    type INTERR
    |    enum_type
    |    class_type
    |    interface_type
    |    type rank_specifier+
    |    delegate_type
    |    type_parameter
    |    type STAR
    |    VOID STAR
    ;

Now SLRR leads to:

type
    :   (type_name
        |    simple_type
        |    enum_type
        |    class_type
        |    interface_type
        |    delegate_type
        |    type_parameter
        |    VOID STAR
        ) (INTERR | rank_specifier+ | STAR)*
    ;

At this point, a grammar check would reveal an ambiguity, which can be easily resolved by the removal of the '+':

type
    :   (type_name
        |    simple_type
        |    enum_type
        |    class_type
        |    interface_type
        |    delegate_type
        |    type_parameter
        |    VOID STAR
        ) (INTERR | rank_specifier | STAR)*
    ;

Sections

My siblings (including me):