# C, 215 bytes

    i,k,t,s;f(char*g){char*l=malloc(strlen(g)),*p=g;for(i=s=t=0;*p;*p>35&&(t?l[i++]=*p:1)&&(*p=32),t&&*p!=35&&++s,++p)t=*p-35?t:!t;for(k=i;i;t&&*p==32&&(*p=l[--i]))t=*--p-35?t:!t;printf("%s\n%d",g,k?k-s?k*2<s?1:2:3:0);}

Outputs 0 for empty glass, 1 for mostly empty, 2 for mostly full, and 3 for full.

[Try it online!](https://tio.run/##nVLbkqIwEH33K3pIjUW4VI0wzgNslg9RHyAKZkHMQsYanZpvd7sDOkzVPtmFdi4nfU6fRIaVlNerCurABH1aunKfd17FP21uxCFvmqN0e9M1u9atOA88Laq0PHauEr0w4iX1NH6/4@V87pqsWSnf3whPJwuOCwiOIx6Y@dzTT4Iwvt8Hvq@5QUwYLzOTPBlbrhYqValFCjw0HG5WYag2nNBh@I3XnWpN6TrP/bp93jpBFdRZHfZZ7UW/@myRREmcvPD064owOOSqdfnscwYY1BZgN4vVBgQ4MAaDM6UCBzbUusX/D/ydmAb4i4OGthpaz8cjlC9/cIAIqOwJzLijtayIi9m19wENHabWEnQjltbv4aRWYEleL3iq303vOus2/H@sW4ensx8tRfeWkMNcUMrAD@wMeSFxdYvz/AQXdvyAnlC2HdRJALNnUNg5O1VoR3cgqflYYgyc7cA6UIAE2E5FR4@IjgfRo@1Yn1kLUVyJXMio9iQUledALeC3w41ikDSljx@hfx3p84Ko5ZYBJgyYVn59pPLydhvs@43tB3vvvZKRbNgank8xzmzzEm6bML4X277tHx0hB6Yql4@ofLvZj4bmF/LgTC@DLnq4cDDE1uArnnK9YZ2v6z8)