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: basic
      returns [JsonElement e]
      : id       { $e = $id.e;       }
      | company  { $e = $company.e;  }
      | buyer    { $e = $buyer.e;    }
      | date     { $e = $date.e;     }
      | products { $e = $products.e; }
  
negative.code:     : INT { $e = new JsonElement("id", $INT.getText()); }
      ;
  
  seller
      returns [JsonStructure e]
      @init          { $e = new JsonStructure("company"); }
      : entitySeller { $e.add($entitySeller.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"); }    
      : entityBuyer { $e.add($entityBuyer.e);  }
        address     { $e.add($address.e); }
        state       { $e.add($state.e);   }
      ;
  
  date
  