Generally, when "parsing" something, the idea is to read token at a time, and not really care about lines and other such things.
If your language is structured that way, you could just read your language as a stream, and when you see a call to a function (or whatever you want to call it), execute that function as you go along [assuming you don't compile to machine code that requires the entire thing to be compiled at once, of course - if that's the case, you're in for a bit of work...]
But if you want to read a line at a time, then use the istream& getline(istream&, std::string&)
method. It reads a single line. You then parse that line and do whatever makes sense with the result of the parsing.