1. A method, comprising: tokenizing, with one or more processing devices, input source text to form a token stream having a plurality of tokens, wherein the input source text is organized in two or more divisions and includes a plurality of statements in a compiled programming language; partitioning, with the one or more processing devices, the token stream into partitions by division and by statement, wherein partitioning includes storing an entry representing each partition in a partition table and wherein partitioning by statement further includes scanning the token stream in reverse starting at a statement end; parsing, with the one or more processing devices, two or more of the partitions in parallel, wherein parsing the partitions in parallel includes building, for each statement partition, an annotated syntax tree (AST) to represent the statement, storing, for each symbol, an entry in a common symbol dictionary, and generating error messages corresponding to syntax errors detected while parsing the partitions; and traversing, with the one or more processing devices, the common symbol dictionary to detect semantic errors.