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 and wherein each token has a location; partitioning, with the one or more processing devices, the token stream into partitions by division and by statement, wherein partitioning by statement 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; wherein scanning the token stream in reverse includes: determining, for each token, if the current token stream location is a conditional marker and, if the current token stream location is a conditional marker, setting a conditional marker flag; determining, for each token, if the current token stream location is an explicit statement terminator and, if the current token stream location is an explicit statement terminator, storing the current token stream location as a latest end statement location; and determining, for each token, if the current token stream location is a period token and, if the current token stream location is a period token, noting the end of a statement.
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 and wherein each token has a location; partitioning, with the one or more processing devices, the token stream into partitions by division and by statement, wherein partitioning by statement 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; wherein scanning the token stream in reverse includes: determining, for each token, if the current token stream location is a conditional marker and, if the current token stream location is a conditional marker, setting a conditional marker flag; determining, for each token, if the current token stream location is an explicit statement terminator and, if the current token stream location is an explicit statement terminator, storing the current token stream location as a latest end statement location; and determining, for each token, if the current token stream location is a period token and, if the current token stream location is a period token, noting the end of a statement. 5. The method of claim 1 , wherein the method further comprises: retrieving, with the one or more processing devices and from memory, the partition table and the common symbol dictionary; receiving changes to the input source text; syntax checking the changed input source text, wherein syntax checking includes parsing each partition with changed input source text, wherein parsing includes: building an annotated syntax tree to represent each statement in the partition that has changed; storing, for each new symbol, an entry in the common symbol dictionary; and generating error messages corresponding to syntax errors encountered while parsing partitions with changed input source text; and traversing, with the one or more processing devices, the new symbols in the common symbol dictionary to detect semantic errors.