When you post, there are posting guidelines, including how to post code. READ THEM PLEASE.
They're not easy to miss.
istringstream is(XX) creates an istringstream object named is, using a constructor that takes an XX as its argument, so it creates an istringstream from an XX.
The brackets may be confusing you; let's add some space to clarify:
if( Exr.at(i) == '(' ) p++;
So this calls Exr.at, passing in i, which returns a character, which the == compares with an open bracket. So this appears to be doing some kind of analysis of nested expressions where brackets are used for nesting.