anchor.diff:      : (KEYWORD_TOTAL COLON?)? DECIMAL { $e = new JsonElement("total", $DECIMAL.getText()); }
       ;
   
  -entity
  +entityBuyer
       returns [JsonStructure e]
       @init { $e = new JsonStructure("entity"); }
  -    : NAME IDNUMBER {
  +    : KEYWORD_BUYER (NAME IDNUMBER | IDNUMBER NAME)
  +    {
           $e
               .add(new JsonElement("id", $IDNUMBER.getText()))
               .add(new JsonElement("name", $NAME.getText()));
       }
  -    | IDNUMBER NAME {
  +    ;
  +
  +entitySeller
  +    returns [JsonStructure e]
  +    @init { $e = new JsonStructure("entity"); }
  +    : KEYWORD_SELLER (NAME IDNUMBER | IDNUMBER NAME)
  +    {
           $e
               .add(new JsonElement("id", $IDNUMBER.getText()))
               .add(new JsonElement("name", $NAME.getText()));
  
positive.code:     : INT { $e = new JsonElement("id", $INT.getText()); }
      ;
  
  company
      returns [JsonStructure e]
      @init     { $e = new JsonStructure("company"); }
      : entity  { $e.add($entity.e);  }
      ( address { $e.add($address.e); }
        HIFEN?
        zipcode { $e.add($zipcode.e); }
        city    { $e.add($city.e);    }
        state   { $e.add($state.e);   }
      )?
      ;
  
  buyer
      returns [JsonStructure e]
      @init     { $e = new JsonStructure("buyer"); }    
      : entity  { $e.add($entity.e);  }
        address { $e.add($address.e); }
        state   { $e.add($state.e);   }
      ;
  
  date
  
negative.code:     : '/'
      ;
  
  KEYWORD_BUYER
      : 'buyer' | 'comprador'
      ;
  
  KEYWORD_SELLER
      : 'seller' | 'vendedor'
      ;
  
  KEYWORD_TAX
      : 'tax' | 'juros'
      ;
  