11. A method for processing element nodes of an extensible-markup language (XML) script, the method comprising: adding a first stack frame to a stack, the first stack frame associated with a first element node of the XML script, the first element node having a first argument that is a current element node of the XML script, the first element node requiring evaluation of the first argument to evaluate the first element node; adding a current stack frame to the stack above the original stack frame, the current stack frame associated with the current element node; determining that a new element node of the XML script is a current argument of the current element node, the current element node requiring evaluation of the current argument to evaluate the current element node; exposing the first stack frame, including setting a pointer of the stack to point to an end of the first stack frame; evaluating the current argument, including: inserting a new stack frame associated with the new element node into the stack, the new stack frame being inserted above the first stack frame and below the current stack frame rather than above the current stack frame, to simplify relative referencing for evaluation of a subsequent nested argument; evaluating the current argument using the new stack frame; returning a result from evaluation of the current argument to the current element node; and removing the new stack frame from the stack after returning the result from evaluation of the current argument to the current element node and before removing the current stack frame; and repeating the determining, inserting, evaluating returning and removing steps until all the element nodes of the XML script are evaluated.
11. A method for processing element nodes of an extensible-markup language (XML) script, the method comprising: adding a first stack frame to a stack, the first stack frame associated with a first element node of the XML script, the first element node having a first argument that is a current element node of the XML script, the first element node requiring evaluation of the first argument to evaluate the first element node; adding a current stack frame to the stack above the original stack frame, the current stack frame associated with the current element node; determining that a new element node of the XML script is a current argument of the current element node, the current element node requiring evaluation of the current argument to evaluate the current element node; exposing the first stack frame, including setting a pointer of the stack to point to an end of the first stack frame; evaluating the current argument, including: inserting a new stack frame associated with the new element node into the stack, the new stack frame being inserted above the first stack frame and below the current stack frame rather than above the current stack frame, to simplify relative referencing for evaluation of a subsequent nested argument; evaluating the current argument using the new stack frame; returning a result from evaluation of the current argument to the current element node; and removing the new stack frame from the stack after returning the result from evaluation of the current argument to the current element node and before removing the current stack frame; and repeating the determining, inserting, evaluating returning and removing steps until all the element nodes of the XML script are evaluated. 15. A method as recited in claim 11 , wherein the first stack frame is associated with a built-in function, and the current stack frame and the new stack frame are each associated with a different user-defined function.