anchor.diff:           function_definition -> ^(DECLARATION ^(FUNCTION_DEFINITION function_definition))
            // TODO: Add function names to the list of ordinary (non-type) names in the symbol table.
   
  +         // The init_declarator_list is optional so 'typedef signed char int8_t;' will parse.
  +         // See the comment in the 'tokens' section of this grammar near the INT8_T token.
  +    |    TYPEDEF declaration_specifiers ';'
  +             -> ^(DECLARATION TYPEDEF declaration_specifiers)
  +
       |    { $declaration::declaredNames = new LinkedList<String>();
              $declaration::inStructDeclaration = false;
            }
  -         // The init_declarator_list is optional so 'typedef signed char int8_t;' will parse.
  -         // See the comment in the 'tokens' section of this grammar near the INT8_T token.
  -         TYPEDEF declaration_specifiers gcc_attributes? init_declarator_list? gcc_attributes? ';'
  +         TYPEDEF declaration_specifiers gcc_attributes? init_declarator_list gcc_attributes? ';'
                {
                  // Inefficient, but how many declarators will be in a declaration, honestly?
                  for (int i = 0; i < $declaration::declaredNames.size(); ++i) {
                      symbols.addType($declaration::declaredNames.get(i));
                  }
                }
  -             -> ^(DECLARATION TYPEDEF declaration_specifiers init_declarator_list?);
  +             -> ^(DECLARATION TYPEDEF declaration_specifiers init_declarator_list);
       
   declaration_specifiers
       :    (storage_class_specifier |
  
positive.code: grammar nesC;
  
  options {
      backtrack = true;      // Quick and dirty. Should try to remove eventually.
      memoize   = true;      // Quick and dirty. Should try to remove eventually.
      output    = AST;
  }
  
  
negative.code: // declarations and the interface|component. This null token is awkward.
  //
  nesC_file
      :    translation_unit? large_scale_construct
               -> ^(FILE translation_unit? large_scale_construct);
  
  large_scale_construct
      :    interface_definition
      |    component;
  
  // This is deprecated. The nesC 1.2 manual doesn't even discuss the semantics of 'includes'
  // include_statement
  