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, in order to have information available in each parsing path induced by mutually exclusive branches returned to a caller, 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 the 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, wherein parsing paths induced by mutually exclusive branches of the preprocessor conditional directive statement are detected by matching preprocessor conditional directives of the preprocessor conditional directive statement.