If I understood correctly, the states output from snsolve should reflect whether a certain variable nonbasic at lower (state=0) or upper bound (state=1) or superbasic (state=2) or basic (state=3).
I observed that the values for states.eqlin, states.eqnonlin, states.ineqlin are the same as the corresponding lagrange multipliers when they should be integers? The values states.x, states.ineqnonlin seem to be correct, though.