module languages/ansi-c/syntax/Declarators[D I]

exports

sorts Pointer Expression Parameters 

context-free syntax

Pointer D 			-> D {non-assoc}
I 				-> D
"(" D ")" 			-> D {bracket}
D "[" Expression? "]"		-> D
D "(" Parameters? ")" 		-> D

context-free priorities
{
D "(" Parameters? ")" 		-> D
D "[" Expression? "]" 	-> D
}
> Pointer D 			-> D