1. A system that parses a plurality of preprocessor conditional branches of a preprocessor conditional directive statement comprising: a computer comprising a processor and a memory, the computer further comprising: a declaration serializer that serializes input into a stream of tokens produced by following each parsing path induced by mutually exclusive branches of a preprocessor conditional directive statement interrupting a declaration, wherein the declaration serializer labels tokens belonging to a first parsing path with a first parsing path indicator, wherein the declaration serializer labels tokens belonging to a second parsing path with a second parsing path indicator, wherein the declaration serializer fetches the tokens that belong to the first parsing path in a first pass and returns the tokens that belong to the first parsing path to a caller and wherein the declaration serializer fetches the tokens that belong to the second parsing path in a second pass and returns the tokens that belong to the second parsing path to the caller.