Helper function, gets next token and updates pc and line.
This is the quintessential function. Given a string containing C++ code and a filename, fills output with the tokens in the file. Warning - don't use temporaries for input and filename because the resulting tokens contain StringPiece objects pointing into them.
Assuming pc is positioned at the start of a character literal, munches it from pc and returns it. A reference to line is passed in order to track multiline character literals (yeah, that can actually happen) correctly.
Eats howMany characters out of pc, avances pc appropriately, and returns the eaten portion.
Assuming pc is positioned at the start of a C-style comment, munches it from pc and returns it.
Assuming pc is positioned at the start of an identifier, munches it from pc and returns it.
Assuming pc is positioned at the start of a number (be it decimal or floating-point), munches it off pc and returns it. Note that the number is assumed to be correct so a number of checks are not necessary.
Assuming pc is positioned at the start of a specified preprocessor directive, munches it from pc and returns it.
Assuming pc is positioned at the start og a raw string, munches it from pc and returns it.
Assuming pc is positioned at the start of a single-line comment, munches it from pc and returns it.
Assuming pc is positioned at the start of a string literal, munches it from pc and returns it. A reference to line is passed in order to track multiline strings correctly.