Irrespective of whether a compile time switch, or a run time switch is used - it would increase readability if only one switch was used:
```C++
if (useNewParser) {
    ...
    ...
} else {
    ...
    ...
}
```
If the intention is to allow fir fine-grained control over which subsystems use which parser - I guess that could be smart; it should certainly be determined at runtime and the options should have names like `useNewParserForGrid`.