19. The method of claim 1 , wherein the transforming of the plurality of AST nodes further comprises for each AST node of the plurality of AST nodes: determining whether the new explain node and at least one contiguous subsequent explain node in the processing stack matches a reduction rule; creating a reduced explain node from the new explain node and the at least one subsequent explain node based on the reduction rule when the new explain node and the at least one subsequent explain node matches the reduction rule; and replacing the new explain node and the at least one subsequent explain node on the processing stack with the reduced explain node.
1. A method for explaining a field of a plurality of fields in a form comprising: receiving input code, wherein the input code is executed by a computer to create data displayed in the plurality of fields in the form; processing, by the computer, the input code to generate an explanation describing calculations performed when the input code is executed, wherein processing the input code to generate the explanation comprises: obtaining an abstract syntax tree from the input code, wherein the abstract syntax tree describes the input code and comprises a plurality of compiled tree structure (AST) nodes, wherein each of the plurality of AST nodes identifies a portion of the input code; obtaining an explain tree by: transforming the plurality of AST nodes into a plurality of explain nodes, wherein the transforming the plurality of AST nodes comprises for each AST node of the plurality of AST nodes: marking the AST node as a current AST node; identifying a mapping rule corresponding to the current AST node, wherein the mapping rule specifies an object type that maps to at least one selected from a group consisting of a plurality of operators and a plurality of parameters, and wherein the mapping rule is identified based on the current AST node comprising at least one selected from the group consisting of an operator of the plurality of operators and a parameter of the plurality of parameters; generating a new explain node of the plurality of explain nodes by instantiating the new explain node as the object type specified by the mapping rule, wherein the new explain node comprises data in the current AST node as a member variable; and adding the new explain node to a processing stack; and storing, in the explain tree, the plurality of explain nodes remaining in the processing stack after the transforming of the plurality of AST nodes is complete; sorting, using a dependency tree, the plurality of explain nodes in the explain tree to obtain a sorted list of the plurality of explain nodes, wherein the dependency tree represents field dependencies between the plurality of fields in the form, and wherein the sorted list comprises, for each dependent field of the plurality of fields, an explain node representing the dependent field after the explain node representing a precedent field of the dependent field; and generating the explanation of each explain node of the plurality of explain nodes in the sorted list by, for each explain node: selecting a template matching the object type of the explain node, and generating the explanation comprising filler words from the template and the member variable comprised in the explain node; and outputting the explanation into a natural language.