Why is this showing syntax error here?

I am trying to write coverage for my design, wherein I have used cross coverage between two coverpoints.
But i don’t get why am I getting this syntax error.
I hope this is the correct way to implement::

FIFO_FULL_CROSSED_WITH_FIFO_PUSH: cross tx.full, tx.wr
        {
          illegal_bins zz = binsof(FIFO_FULL.full) && binsof(WRITE.wr);
        }

full and write are variables inside the sequence_item “tx”.
FIFO_FULL and WRITE are the names of coverpoints.

When I run this code in my UVM environment I get this error::

Error-[SE] Syntax error
  Following verilog source has syntax error :
  	Illegal identfier in binsof expression. Coverpoint identifier used 
  in this cross is expected.
  "coverage_collector.sv", 43: token is ')'
            illegal_bins zz = binsof(FIFO_FULL.full) && binsof(WRITE.wr);
                                                    ^

In reply to bhaskar_tzp:

It would really help to show the definitions of all identifiers involved. Most likely your error is because you should have crossed FIFO_FULL and WRITE instead of tx.full and tx.wr.

Thanks dave, I have crossed the variables tx.full and tx.wr. The error got removed when I the crossed the coverpoints FIFO_FULL and WRITE instead of the variables.