Begin Expression Arguments Rule
If Python is in the "begin_expr" state and the expression being evaluated is a function call, then prepend the function call arguments to the "Arguments" stack.
if the following are true:
- expression state at time t = "begin_expr"
- the expression at time t = function call with name: name and arguments: args
then arguments stack at time (t + 1) = [ args, arguments stack at time t ]
if the following are true:
- expression state at time 1 = "begin_expr"
- the expression at time 1 =
__add__(5, 2)
then arguments stack at time (1 + 1) = [ [ 5, [ 2, [ ] ] ], arguments stack at time 1 ]
Notice that the list of arguments became 1 new element of the Arguments stack. Why didn't we just set the Arguments stack equal to the arguments list? If an argument (child) is also a function call, then the child has its own arguments (grandchildren). When it is time for the grandchildren to be added to the Arguments stack, they are added as a separate element to the stack. This way, the grandchildren are separated from the children. If there are more levels of descendents, more elements will be created in the Arguments stack.
Current Line | 1 | Current Tab | 0 | Time | 0 |
Comments
Please log in to add comments