1. A computer-implemented method for freeform mathematical parsing and grading of an arithmetic expression, using a grammar that has been defined, such that the grammar can be selected from the group consisting of an implicit multiplication expression, an explicit multiplication expression, an implicit function expression, an explicit function expression, and combinations thereof, the method comprising: defining in the grammar, by a processing device, a production comprising a plurality of variables; parsing, by a parser in electronic communication with the processing device, based on the grammar, a received ambiguous input; generating, by the parser, a plurality of parse trees from the parsed input, such that the plurality of parse trees defines the received ambiguous input; comparing, by an interpreter in electronic communication with the processing device, at least one of the plurality of parse trees to an answer key stored in memory; and assigning, by the interpreter, a grade to the arithmetic expression based on the comparison.