module C-ParameterDeclarators
exports
  context-free syntax
    ParamDeclTypeSpec ( AbstractDeclarator | IdDeclarator )?   -> ParamDeclaration {cons("ParamDecl")}
    ( DeclarationSpecifier | TypeSpecifier ) TypedefDeclarator -> ParamDeclaration {cons("ParamDecl2")}

    %%% TODO: These are almost the same as for FunDef ... 

    TypeSpecifier             -> ParamDeclTypeSpec
    DeclarationSpecifier      -> ParamDeclTypeSpec
    DeclarationQualifierList  -> ParamDeclTypeSpec
    TypeQualifier+            -> ParamDeclTypeSpec

  context-free syntax
    TypeSpecifier  AbstractDeclarator? -> TypeName {cons("TypeName")}
    TypeQualifier+ AbstractDeclarator? -> TypeName {cons("TypeName1")}

