1. A computer implemented parsing method, comprising: representing a grammar of a first programming language in member fields and data types of object-oriented classes of a second programming language as an empty program semantic tree; and, building a new program semantic tree that represents source code written in the first programming language, the new program semantic tree being built by a reflection technique in which the member fields and data types of the object-oriented classes of the second programming language as set out in the empty program semantic tree are modified during the building of the new program semantic tree, wherein building the new program semantic tree includes utilizing one or more of: a top level parsing routine to call token specific parsers, a parser to handle tokens in a token sequence, and/or a precedence chooser parser to parse programming syntax involving mathematical operators.