1. A system for analyzing source code, the system comprising: a computer including a memory and a processor; a discoverer module stored on the memory, the discoverer module configured to automatically identify applications of an infrastructure and extract at least one input source code file containing source code written in at least one computer programming language corresponding to the identified applications, wherein the discoverer is configured to determine or obtain characteristics of the extracted at least one input source code file containing source code written in the at least one computer programming language; a file reader module stored on the memory and configured to read the at least one input source code file containing source code written in at least one computer programming language; a parser module stored on the memory and including a plurality of parsers each specific to a different one of the at least one computer programming language, the parser module configured to parse the source code in the at least one input source code file into source code components based on syntax rules of the at least one computer programming language in which the source code is written; a metrics accumulator module stored on the memory and configured to analyze the source code components according to one or more rules to generate application metadata; and a reporting engine stored on the memory and configured to generate a report based on the generated application metadata.