anchor.diff:  element -> message_def:                 '$1'.
   %% element -> extend_def:                  '$1'.
   element -> option_def:                  '$1'.
  +%% element -> service_def                  '$1'.
   
   package_def -> package name ';':        {package, '$2'}.
   
  
positive.code:         default
          import
          option
          %% '(' and ')' for options
          %% 'extensions', 'extend', 'max' and 'to' for extensions
          %% 'service' and 'rpc'
          packed deprecated
          '.' ';' '{' '}' '[' ']' '=' ','
          .
  
negative.code:         '$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'.
  