1.3 Rule Inlining unmanaged_type
We start here with the two saved unmanaged_type and array_type rules. We remove the left-recursion from array_type and simplify it to
array_type : (type_name | simple_type | enum_type | class_type | interface_type | delegate_type | type_parameter | unmanaged_type STAR | VOID STAR ) (INTERR* rank_specifier)+ ;
Then we only need to inline it and simplify unmanaged_type to
unmanaged_type : type_name (INTERR | rank_specifier)* | simple_type (INTERR | rank_specifier)* | enum_type (INTERR | rank_specifier)* | class_type (INTERR | rank_specifier)* | interface_type (INTERR | rank_specifier)* | delegate_type (INTERR | rank_specifier)* | type_parameter (INTERR | rank_specifier)* | unmanaged_type STAR (INTERR | rank_specifier)* | VOID STAR (INTERR | rank_specifier)* ;
Now SLRR and simplification steps have to be repeated:
unmanaged_type : (type_name | simple_type | enum_type | class_type | interface_type | delegate_type | type_parameter | VOID STAR ) (STAR | INTERR | rank_specifier)* ;
Sections
My siblings (including me):