anchor.diff:  
   
             (--> |parameter_declaration|
  -               (SEQ |declaration_specifiers|
  -                    (OPT |declarator__or__abstract_declarator|)))
  +               (seq |declaration_specifiers|
  +                    (opt |declarator__or__abstract_declarator|)))
   
             (--> |declarator__or__abstract_declarator|
                  (alt |direct_declarator__or__direct_abstract_declarator|
  
positive.code: 
            
            (--> |pointer|
                 (SEQ * (OPT (ALT (SEQ |type_qualifier_list| (OPT |pointer|))
                                  |pointer|))))
            
            
            (--> |type_name|
                 (SEQ |specifier_qualifier_list| (OPT |abstract_declarator|)))
  
  
            
  
  
            (--> |abstract_declarator|
                 (ALT (SEQ |pointer| (OPT |direct_abstract_declarator|))
                      (SEQ |direct_abstract_declarator|)))
  
            (--> |direct_abstract_declarator|
                 (SEQ |simple_direct_abstract_declarator|
                      (REP |direct_abstract_declarator_item|)))
            
            (--> |simple_direct_abstract_declarator|
                 (ALT (SEQ \( (OPT |direct_abstract_declarator_in_parentheses|) \))
                      |bracket_direct_abstract_declarator|))
  
            (--> |direct_abstract_declarator_in_parentheses|
                 (ALT (SEQ |abstract_declarator|)
                      (SEQ |parameter_type_list|)))
  
            (--> |direct_abstract_declarator_item|
                 (ALT (SEQ \( (OPT |parameter_type_list|) \))
                      |bracket_direct_abstract_declarator|))
  
            
            
  
negative.code: 
            (--> |direct_declarator__or__direct_abstract_declarator|
                 (seq |simple_direct_declarator__or__simple_direct_abstract_declarator|
                      (rep |direct_declarator_item__or__direct_abstract_declarator_item|
                           :action $1) :action (cons $1 $2)))
                 
            
            (--> |simple_direct_declarator__or__simple_direct_abstract_declarator|
                 (alt (seq IDENTIFIER)
                      (seq \( (opt (alt (seq |declarator__or__abstract_declarator|
                                             (rep \, IDENTIFIER)
                                             :action (progn #|check declarator is identifier
                                                            if we have rep identifiers.|#))
                                        (seq |parameter_type_list|)))
                           \))
                      |bracket_direct_abstract_declarator|
                     ))
            
            (--> |direct_declarator_item__or__direct_abstract_declarator_item|
                 (alt (seq \( (opt |direct_declarator_in_parentheses|) \))
                      |bracket_direct_abstract_declarator|
                     ))
  
            (--> |bracket_direct_abstract_declarator|
                 (seq \[
                      (opt (alt (seq STAR)
                                (seq |direct_declarator_in_brackets|
                                     :action (progn #| check no [*] |#))))
                      \]))
  
  