anchor.diff:          '$end'.
   
   
  +%% TODO: implement extensions...
  +%% TODO: implement services...
  +%% TODO: implement generation/formatting of records               -> .hrl
  +%% TODO: implement generation/formatting of msg+enum descriptions -> .erl
  +%% TODO: implement verification of references
  +%% TODO: implement (custom) options: allowed everywhere
  +%% TODO: implement syntax as in syntax = "proto2"; (must come first)
  +
   proto -> elements:                      '$1'.
  +%% proto -> syntax_def elements:           '$1'.
   
   elements -> element elements:           ['$1' | '$2'].
   elements -> ';' elements:               '$2'.
  
positive.code: element -> message_def:                 '$1'.
  %% element -> extend_def:                  '$1'.
  element -> option_def:                  '$1'.
  
  package_def -> package name ';':        {package, '$2'}.
  
  
negative.code:         default
          import
          option
          %% '(' and ')' for custom options
          %% 'extensions', 'extend', 'max' and 'to' for extensions
          %% 'service', 'rpc', 'returns', '(' and ')' for services
          packed deprecated
          '.' ';' '{' '}' '[' ']' '=' ','
          .
  