Function Value Stack at time s
each element in the value stack contains values at a particular scope. The values at the current scope are accessed with values_at(s)
Format:
Value Stack at time s
Input:
Output:
Conditional properties that reference this function:
- if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = Python list elements
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if Expression Stack at time t = [ [ Python list elements, ys ], rest ], then Value Stack at time (t + 1) = [ [ ], Value Stack at time t ] (link)
- if the following are true:
- Expression Stack at time t = [ [ ], [ [ Python list elements, ys ], rest ] ]
- Value Stack at time t = [ values, [ next_level, other_levels ] ]
then Value Stack at time (t + 1) = [ [ Python reference (length of stack (Python Object Store at time t)), next_level ], other_levels ]
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ Python list elements, ys ], rest ] ]
- Value Stack at time t = [ values, [ next_level, other_levels ] ]
then Python Object Store at time (t + 1) = result of appending (Python list (reverse of values)) to (Python Object Store at time t)
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (Python list elements)
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = obj_name.method_name(args)
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target target and expression (obj_name.method_name(args))
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if Expression Stack at time t = [ [ obj_name.method_name(args), ys ], rest ], then Value Stack at time (t + 1) = [ [ ], Value Stack at time t ] (link)
- if the following are true:
- Expression Stack at time t = [ [ ], [ [
obj.append(x)
, ys ], rest ] ] - Value Stack at time t = [ [ value, [ ] ], [ next_level, other_levels ] ]
- value at obj in map (Variables Map at time t) = Python reference idx
- the element at index idx of stack (Python Object Store at time t) = Python list entries
then Python Object Store at time (t + 1) = result of storing (Python list (result of appending value to entries)) at index idx of stack (Python Object Store at time t)
(link) - Expression Stack at time t = [ [ ], [ [
- if the following are true:
- Expression Stack at time t = [ [ ], [ [
obj.append(x)
, ys ], rest ] ] - Value Stack at time t = [ [ value, [ ] ], [ next_level, other_levels ] ]
- value at obj in map (Variables Map at time t) = Python reference idx
- the element at index idx of stack (Python Object Store at time t) = Python list entries
then Value Stack at time (t + 1) = [ [ None, next_level ], other_levels ]
(link) - Expression Stack at time t = [ [ ], [ [
- if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: "__getitem__" and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ [ a, [ Python reference idx, [ ] ] ], [ next_level, other_levels ] ]
- the element at index idx of stack (Python Object Store at time t) = Python list entries
then Value Stack at time (t + 1) = [ [ the element at index a of stack entries, next_level ], other_levels ]
(link) - if the following are true:
- Value Stack at time t = [ [ Python reference idx, [ ] ], [ next_level, other_levels ] ]
- Expression Stack at time t = [ [ ], [ [ function call with name: "len" and arguments: args, ys ], rest ] ]
- the element at index idx of stack (Python Object Store at time t) = Python list entries
then Value Stack at time (t + 1) = [ [ length of stack entries, next_level ], other_levels ]
(link) - if the following are true:
- Value Stack at time t = [ [ a, [ ] ], [ next_level, other_levels ] ]
- Expression Stack at time t = [ [ ], [ [ name."pop"(args), ys ], rest ] ]
- value at name in map (Variables Map at time t) = Python reference idx
- the element at index idx of stack (Python Object Store at time t) = Python list entries
then Python Object Store at time (t + 1) = result of storing (Python list (stack after popping a value from stack entries at index a)) at index idx of stack (Python Object Store at time t)
(link) - if the following are true:
- Value Stack at time t = [ [ a, [ ] ], [ next_level, other_levels ] ]
- Expression Stack at time t = [ [ ], [ [ name."pop"(args), ys ], rest ] ]
- value at name in map (Variables Map at time t) = Python reference idx
- the element at index idx of stack (Python Object Store at time t) = Python list entries
then Value Stack at time (t + 1) = [ [ the element at index a of stack entries, next_level ], other_levels ]
(link) - if the following are true:
- Value Stack at time t = [ [ a, [ Python reference idx, [ ] ] ], [ next_level, other_levels ] ]
- Expression Stack at time t = [ [ ], [ [ function call with name: "__contains__" and arguments: args, ys ], rest ] ]
- the element at index idx of stack (Python Object Store at time t) = Python list entries
then Value Stack at time (t + 1) = [ [ stack entries contains a, next_level ], other_levels ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = Python dictionary entries
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if Expression Stack at time t = [ [ Python dictionary entries, ys ], rest ], then Value Stack at time (t + 1) = [ [ ], Value Stack at time t ] (link)
- if the following are true:
- Expression Stack at time t = [ [ ], [ [ Python dictionary entries, ys ], rest ] ]
- Value Stack at time t = [ values, [ next_level, other_levels ] ]
then Value Stack at time (t + 1) = [ [ Python reference (length of stack (Python Object Store at time t)), next_level ], other_levels ]
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ Python dictionary entries, ys ], rest ] ]
- Value Stack at time t = [ values, [ next_level, other_levels ] ]
then Python Object Store at time (t + 1) = result of appending (Python dictionary (reverse of values)) to (Python Object Store at time t)
(link) - if Expression Stack at time t = [ [ entry key: value, ys ], rest ], then Value Stack at time (t + 1) = [ [ ], Value Stack at time t ] (link)
- if the following are true:
- Expression Stack at time t = [ [ ], [ [ entry key: value, ys ], rest ] ]
- Value Stack at time t = [ [ evaluated_value, [ evaluated_key, [ ] ] ], [ next_level, other_levels ] ]
then Value Stack at time (t + 1) = [ [ entry evaluated_key: evaluated_value, next_level ], other_levels ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (Python dictionary elements)
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: "__getitem__" and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ [ a, [ Python reference idx, [ ] ] ], [ next_level, other_levels ] ]
- the element at index idx of stack (Python Object Store at time t) = Python dictionary entries
then Value Stack at time (t + 1) = [ [ value at a in map entries, next_level ], other_levels ]
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: "__setitem__" and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ [ value, [ key, [ Python reference idx, [ ] ] ] ], [ next_level, other_levels ] ]
- the element at index idx of stack (Python Object Store at time t) = Python dictionary entries
then Python Object Store at time (t + 1) = result of storing (Python dictionary (result of storing value at key: key in map: entries)) at index idx of stack (Python Object Store at time t)
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: "__setitem__" and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ [ value, [ key, [ Python reference idx, [ ] ] ] ], [ next_level, other_levels ] ]
- the element at index idx of stack (Python Object Store at time t) = Python dictionary entries
then Value Stack at time (t + 1) = [ [ None, next_level ], other_levels ]
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: "__setitem__" and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ [ value, [ key, [ Python reference idx, [ ] ] ] ], [ next_level, other_levels ] ]
- the element at index idx of stack (Python Object Store at time t) = Python list elements
then Python Object Store at time (t + 1) = result of storing (Python list (result of storing value at index key of stack elements)) at index idx of stack (Python Object Store at time t)
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: "__setitem__" and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ [ value, [ key, [ Python reference idx, [ ] ] ] ], [ next_level, other_levels ] ]
- the element at index idx of stack (Python Object Store at time t) = Python list elements
then Value Stack at time (t + 1) = [ [ None, next_level ], other_levels ]
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ obj_name.method_name(args), ys ], rest ] ]
- value at obj_name in map (Variables Map at time t) = Python reference index
- the element at index index of stack (Python Object Store at time t) = Python object: [ entry "__class_name__": class_name, e_rest ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is method_name = params
- Parameters List at time t = None
- Value Stack at time t = [ values, v_stack ]
then Parameters List at time (t + 1) = params
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ obj_name.method_name(args), ys ], rest ] ]
- value at obj_name in map (Variables Map at time t) = Python reference index
- the element at index index of stack (Python Object Store at time t) = Python object: [ entry "__class_name__": class_name, e_rest ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is method_name = params
- Parameters List at time t = None
- Value Stack at time t = [ values, v_stack ]
then Value Stack at time (t + 1) = v_stack
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ obj_name.method_name(args), ys ], rest ] ]
- value at obj_name in map (Variables Map at time t) = Python reference index
- the element at index index of stack (Python Object Store at time t) = Python object: [ entry "__class_name__": class_name, e_rest ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is method_name = params
- Parameters List at time t = None
- Value Stack at time t = [ values, v_stack ]
then Function Variables Map at time (t + 1) = [ ]
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ obj_name.method_name(args), ys ], rest ] ]
- value at obj_name in map (Variables Map at time t) = Python reference index
- the element at index index of stack (Python Object Store at time t) = Python object: [ entry "__class_name__": class_name, e_rest ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is method_name = params
- Parameters List at time t = None
- Value Stack at time t = [ values, v_stack ]
then Argument Values at time (t + 1) = [ Python reference index, reverse of values ]
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ obj_name.method_name(args), ys ], rest ] ]
- value at obj_name in map (Variables Map at time t) = Python reference index
- the element at index index of stack (Python Object Store at time t) = Python object: [ entry "__class_name__": class_name, e_rest ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is method_name = params
- Parameters List at time t = None
- Value Stack at time t = [ values, v_stack ]
then Expression Stack at time (t + 1) = Expression Stack at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ obj_name.method_name(args), ys ], rest ] ]
- value at obj_name in map (Variables Map at time t) = Python reference index
- the element at index index of stack (Python Object Store at time t) = Python object: [ entry "__class_name__": class_name, e_rest ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is method_name = params
- Parameters List at time t = None
- Value Stack at time t = [ values, v_stack ]
then Variables Map at time (t + 1) = Variables Map at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ obj_name.method_name(args), ys ], rest ] ]
- value at obj_name in map (Variables Map at time t) = Python reference index
- the element at index index of stack (Python Object Store at time t) = Python object: [ entry "__class_name__": class_name, e_rest ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is method_name = params
- Parameters List at time t = None
- Value Stack at time t = [ values, v_stack ]
then Control Map at time (t + 1) = Control Map at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ obj_name.method_name(args), ys ], rest ] ]
- value at obj_name in map (Variables Map at time t) = Python reference index
- the element at index index of stack (Python Object Store at time t) = Python object: [ entry "__class_name__": class_name, e_rest ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is method_name = params
- Parameters List at time t = None
- Value Stack at time t = [ values, v_stack ]
then Python Object Store at time (t + 1) = Python Object Store at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ obj_name.method_name(args), ys ], rest ] ]
- value at obj_name in map (Variables Map at time t) = Python reference index
- the element at index index of stack (Python Object Store at time t) = Python object: [ entry "__class_name__": class_name, e_rest ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is method_name = params
- Parameters List at time t = None
- Value Stack at time t = [ values, v_stack ]
then Context Stack at time (t + 1) = Context Stack at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ obj_name.method_name(args), ys ], rest ] ]
- value at obj_name in map (Variables Map at time t) = Python reference index
- the element at index index of stack (Python Object Store at time t) = Python object: [ entry "__class_name__": class_name, e_rest ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is method_name = params
- Parameters List at time t = None
- Value Stack at time t = [ values, v_stack ]
then the line at time (t + 1) = the line at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ obj_name.method_name(args), ys ], rest ] ]
- value at obj_name in map (Variables Map at time t) = Python reference index
- the element at index index of stack (Python Object Store at time t) = Python object: [ entry "__class_name__": class_name, e_rest ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is method_name = params
- Parameters List at time t = None
- Value Stack at time t = [ values, v_stack ]
then the tab at time (t + 1) = the tab at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ name.method(args), ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Value Stack at time (t + 1) = [ [ r, next_level ], other_levels ]
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ name.method(args), ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Expression Stack at time (t + 1) = [ ys, rest ]
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ name.method(args), ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Return Value at time (t + 1) = [ ]
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ name.method(args), ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Parameters List at time (t + 1) = None
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ name.method(args), ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Variables Map at time (t + 1) = Variables Map at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ name.method(args), ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Control Map at time (t + 1) = Control Map at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ name.method(args), ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Python Object Store at time (t + 1) = Python Object Store at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ name.method(args), ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Context Stack at time (t + 1) = Context Stack at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ name.method(args), ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then the line at time (t + 1) = the line at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ name.method(args), ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then the tab at time (t + 1) = the tab at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (obj_name.method_name(args))
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Variables Map at time (t + 1) = result of storing value at key: x in map: (Variables Map at time t)
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (obj_name.method_name(args))
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then the line at time (t + 1) = i + 1
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (obj_name.method_name(args))
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then the tab at time (t + 1) = the tab at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (obj_name.method_name(args))
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Context Stack at time (t + 1) = Context Stack at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (obj_name.method_name(args))
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Python Object Store at time (t + 1) = Python Object Store at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (obj_name.method_name(args))
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Control Map at time (t + 1) = Control Map at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (Python constructor with name: name and arguments: args)
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if Expression Stack at time t = [ [ Python constructor with name: class_name and arguments: args, ys ], rest ], then Value Stack at time (t + 1) = [ [ ], Value Stack at time t ] (link)
- if the following are true:
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: class_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ evaluated, stack ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is "__init__" = params
- Parameters List at time t = None
then Value Stack at time (t + 1) = stack
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: class_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ evaluated, stack ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is "__init__" = params
- Parameters List at time t = None
then Parameters List at time (t + 1) = params
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: class_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ evaluated, stack ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is "__init__" = params
- Parameters List at time t = None
then Function Variables Map at time (t + 1) = [ ]
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: class_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ evaluated, stack ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is "__init__" = params
- Parameters List at time t = None
then Argument Values at time (t + 1) = reverse of evaluated
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: class_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ evaluated, stack ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is "__init__" = params
- Parameters List at time t = None
then Expression Stack at time (t + 1) = Expression Stack at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: class_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ evaluated, stack ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is "__init__" = params
- Parameters List at time t = None
then Variables Map at time (t + 1) = Variables Map at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: class_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ evaluated, stack ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is "__init__" = params
- Parameters List at time t = None
then Control Map at time (t + 1) = Control Map at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: class_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ evaluated, stack ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is "__init__" = params
- Parameters List at time t = None
then Python Object Store at time (t + 1) = Python Object Store at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: class_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ evaluated, stack ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is "__init__" = params
- Parameters List at time t = None
then Context Stack at time (t + 1) = Context Stack at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: class_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ evaluated, stack ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is "__init__" = params
- Parameters List at time t = None
then the line at time (t + 1) = the line at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: class_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ evaluated, stack ]
- method parameters where the Class Map is (Class Map at time t), class name is class_name, and method name is "__init__" = params
- Parameters List at time t = None
then the tab at time (t + 1) = the tab at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: clss_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Value Stack at time (t + 1) = [ [ r, next_level ], other_levels ]
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: clss_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Expression Stack at time (t + 1) = [ ys, rest ]
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: clss_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Return Value at time (t + 1) = [ ]
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: clss_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Parameters List at time (t + 1) = None
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: clss_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Variables Map at time (t + 1) = Variables Map at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: clss_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Control Map at time (t + 1) = Control Map at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: clss_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Python Object Store at time (t + 1) = Python Object Store at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: clss_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Context Stack at time (t + 1) = Context Stack at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: clss_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then the line at time (t + 1) = the line at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ Python constructor with name: clss_name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then the tab at time (t + 1) = the tab at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (Python constructor with name: class_name and arguments: args)
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Variables Map at time (t + 1) = result of storing value at key: x in map: (Variables Map at time t)
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (Python constructor with name: class_name and arguments: args)
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then the line at time (t + 1) = i + 1
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (Python constructor with name: class_name and arguments: args)
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then the tab at time (t + 1) = the tab at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (Python constructor with name: class_name and arguments: args)
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Context Stack at time (t + 1) = Context Stack at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (Python constructor with name: class_name and arguments: args)
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Python Object Store at time (t + 1) = Python Object Store at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (Python constructor with name: class_name and arguments: args)
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Control Map at time (t + 1) = Control Map at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (obj.attr)
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (obj.attr)
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Variables Map at time (t + 1) = result of storing value at key: x in map: (Variables Map at time t)
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (obj.attr)
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then the line at time (t + 1) = i + 1
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (obj.attr)
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then the tab at time (t + 1) = the tab at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (obj.attr)
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Context Stack at time (t + 1) = Context Stack at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (obj.attr)
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Python Object Store at time (t + 1) = Python Object Store at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (obj.attr)
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Control Map at time (t + 1) = Control Map at time t
(link) - if Expression Stack at time t = [ [ obj.attr, ys ], rest ], then Value Stack at time (t + 1) = [ [ ], Value Stack at time t ] (link)
- if the following are true:
- Expression Stack at time t = [ [ ], [ [ obj.attr, ys ], rest ] ]
- Value Stack at time t = [ [ Python reference index, [ ] ], [ next_level, other_levels ] ]
- the element at index index of stack (Python Object Store at time t) = Python object: attributes
then Value Stack at time (t + 1) = [ [ value at attr in map attributes, next_level ], other_levels ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = obj.key = value
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if Expression Stack at time t = [ [ obj.key = value, [ ] ], [ ] ], then Value Stack at time (t + 1) = [ [ ], Value Stack at time t ] (link)
- if the following are true:
- Expression Stack at time t = [ [ ], [ [ obj.attribute = val, ys ], rest ] ]
- Value Stack at time t = [ [ value, [ Python reference idx, [ ] ] ], [ next_level, other_levels ] ]
- the element at index idx of stack (Python Object Store at time t) = Python object: entries
then Python Object Store at time (t + 1) = result of storing (Python object: (result of storing value at key: attribute in map: entries)) at index idx of stack (Python Object Store at time t)
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ obj.attribute = val, ys ], rest ] ]
- Value Stack at time t = [ [ value, [ Python reference idx, [ ] ] ], [ next_level, other_levels ] ]
- the element at index idx of stack (Python Object Store at time t) = Python object: entries
then Value Stack at time (t + 1) = [ [ None, next_level ], other_levels ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab k = s
- k < j
- value at (j - 1) in map (Control Map at time t) = pair ("method", mname)
- Context Stack at time t = [ program context with variables: varis and expression state: (expression state with expression stack: expr_stack values: value_stack line: line tab: tab) and control map: control_map, rest ]
then Value Stack at time (t + 1) = value_stack
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
for target in iterable:
- map (Control Map at time t) does not contain a for loop entry at line: i and tab: j
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
for target in iterable_ex:
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ Python reference index, [ ] ], v_stack ]
- the element at index index of stack (Python Object Store at time t) = Python list elements
then Control Map at time (t + 1) = result of storing (trio ("for", i, elements)) at key: j in map: (Control Map at time t)
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = function call with name: name and arguments: args
- expression state at time t = "not_expr"
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = c
- expression state at time t = "not_expr"
- c is constant
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = x
- expression state at time t = "not_expr"
- x is a variable
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (function call with name: name and arguments: args)
- expression state at time t = "not_expr"
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- expression state at time t = "begin_expr"
- the expression at time t = c
- c is constant
then Value Stack at time (t + 1) = Value Stack at time t
(link) - if the following are true:
- expression state at time t = "begin_expr"
- the expression at time t = v
- v is a variable
then Value Stack at time (t + 1) = Value Stack at time t
(link) - 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 Value Stack at time (t + 1) = [ [ ], Value Stack at time t ]
(link) - if expression state at time t = "iterate_args", then Value Stack at time (t + 1) = Value Stack at time t (link)
- if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ a, [ b, [ ] ] ], stack ]
- the expression at time t = function call with name: "__add__" and arguments: args
then Return Value at time (t + 1) = b + a
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ a, [ b, [ ] ] ], stack ]
- the expression at time t = function call with name: "__mul__" and arguments: args
then Return Value at time (t + 1) = b ⋅ a
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ a, [ b, [ ] ] ], stack ]
- the expression at time t = function call with name: "__eq__" and arguments: args
then Return Value at time (t + 1) = b = a
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ a, [ b, [ ] ] ], stack ]
- the expression at time t = function call with name: "__gt__" and arguments: args
then Return Value at time (t + 1) = b > a
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ a, [ b, [ ] ] ], stack ]
- the expression at time t = function call with name: "__lt__" and arguments: args
then Return Value at time (t + 1) = b < a
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ values, stack ]
- the expression at time t = function call with name: name and arguments: args
then Argument Values at time (t + 1) = reverse of values
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ values, stack ]
- the expression at time t = function call with name: name and arguments: args
then Value Stack at time (t + 1) = stack
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ values, stack ]
- the expression at time t = function call with name: name and arguments: args
then expression state at time (t + 1) = "call_build_args"
(link) - if expression state at time t = "call_build_args", then Value Stack at time (t + 1) = Value Stack at time t (link)
- if the following are true:
- expression state at time t = "call_build_args"
- Parameters List at time t = [ ]
then stack at time (t + 1) = [ program context with variables: (Variables Map at time t) and expression state: (expression state with parent stack: (parent stack at time t) arguments: (arguments stack at time t) values: (Value Stack at time t) line: (the line at time t) tab: (the tab at time t)) and control map: (Control Map at time t), stack at time t ]
(link) - if expression state at time t = "call_returned", then Value Stack at time (t + 1) = Value Stack at time t (link)
- if the following are true:
- expression state at time t = "return"
- Value Stack at time t = [ v, w ]
- Return Value at time t = r
then Value Stack at time (t + 1) = [ [ r, v ], w ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
if test:
- expression state at time t = "not_expr"
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
elif test:
- value at j in map (Control Map at time t) = pair ("if", False)
- expression state at time t = "not_expr"
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = "while" statement with condition (function call with name: name and arguments: args)
- expression state at time t = "not_expr"
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
return rex
- expression state at time t = "not_expr"
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
return rex
- stack at time t = [ program context with variables: varis and expression state: (expression state with parent stack: parent_stack arguments: arg_stack values: value_stack line: line tab: tab) and control map: control_map, rest ]
- expression state at time t = "end_expr"
then Value Stack at time (t + 1) = value_stack
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = Python list elements
- expression state at time t = "not_expr"
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- expression state at time t = "begin_expr"
- the expression at time t = Python list elements
then Value Stack at time (t + 1) = [ [ ], Value Stack at time t ]
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ values, stack ]
- the expression at time t = Python list elements
then Return Value at time (t + 1) = Python reference (length of stack (Python Object Store at time t))
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ values, stack ]
- the expression at time t = Python list elements
then Python Object Store at time (t + 1) = result of appending (Python list (reverse of values)) to (Python Object Store at time t)
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ values, stack ]
- the expression at time t = Python list elements
then Value Stack at time (t + 1) = stack
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (Python list elements)
- expression state at time t = "not_expr"
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = obj_name.method_name(args)
- expression state at time t = "not_expr"
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target target and expression (obj_name.method_name(args))
- expression state at time t = "not_expr"
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- expression state at time t = "begin_expr"
- the expression at time t = obj_name.method_name(args)
then Value Stack at time (t + 1) = [ [ ], Value Stack at time t ]
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ values, stack ]
- the expression at time t = obj.method_name(args)
then Value Stack at time (t + 1) = stack
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ value, [ ] ], stack ]
- the expression at time t =
obj.append(x)
- value at obj in map (Variables Map at time t) = Python reference idx
- the element at index idx of stack (Python Object Store at time t) = Python list entries
then Python Object Store at time (t + 1) = result of storing (Python list (result of appending value to entries)) at index idx of stack (Python Object Store at time t)
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- the expression at time t = obj_name.method_name(args)
- value at obj_name in map (Variables Map at time t) = Python reference index
- the element at index index of stack (Python Object Store at time t) = Python object: [ entry "__class_name__": class_name, e_rest ]
- Value Stack at time t = [ values, v_stack ]
- definition of method method_name of class class_name in (Class Map at time t) = method_map
then Argument Values at time (t + 1) = [ Python reference index, reverse of values ]
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- the expression at time t = obj_name.method_name(args)
- value at obj_name in map (Variables Map at time t) = Python reference index
- the element at index index of stack (Python Object Store at time t) = Python object: [ entry "__class_name__": class_name, e_rest ]
- Value Stack at time t = [ values, v_stack ]
- definition of method method_name of class class_name in (Class Map at time t) = method_map
then Value Stack at time (t + 1) = v_stack
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ a, [ Python reference idx, [ ] ] ], stack ]
- the expression at time t = function call with name: "__getitem__" and arguments: args
- the element at index idx of stack (Python Object Store at time t) = Python list entries
then Return Value at time (t + 1) = the element at index a of stack entries
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ Python reference idx, [ ] ], stack ]
- the expression at time t = function call with name: "len" and arguments: args
- the element at index idx of stack (Python Object Store at time t) = Python list entries
then Return Value at time (t + 1) = length of stack entries
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ a, [ ] ], stack ]
- the expression at time t = name."pop"(args)
- value at obj in map (Variables Map at time t) = Python reference idx
- the element at index idx of stack (Python Object Store at time t) = Python list entries
then Python Object Store at time (t + 1) = result of storing (Python list (stack after popping a value from stack entries at index a)) at index idx of stack (Python Object Store at time t)
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ a, [ ] ], stack ]
- the expression at time t = name."pop"(args)
- value at obj in map (Variables Map at time t) = Python reference idx
- the element at index idx of stack (Python Object Store at time t) = Python list entries
then Return Value at time (t + 1) = the element at index a of stack entries
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ a, [ Python reference idx, [ ] ] ], stack ]
- the expression at time t = function call with name: "__contains__" and arguments: args
- the element at index idx of stack (Python Object Store at time t) = Python list entries
then Return Value at time (t + 1) = stack entries contains a
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = Python dictionary entries
- expression state at time t = "not_expr"
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- expression state at time t = "begin_expr"
- the expression at time t = Python dictionary entries
then Value Stack at time (t + 1) = [ [ ], Value Stack at time t ]
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ values, stack ]
- the expression at time t = Python dictionary elements
then Return Value at time (t + 1) = Python reference (length of stack (Python Object Store at time t))
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ values, stack ]
- the expression at time t = Python dictionary elements
then Python Object Store at time (t + 1) = result of appending (Python dictionary (reverse of values)) to (Python Object Store at time t)
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ values, stack ]
- the expression at time t = Python dictionary elements
then Value Stack at time (t + 1) = stack
(link) - if the following are true:
- expression state at time t = "begin_expr"
- the expression at time t = entry key: value
then Value Stack at time (t + 1) = [ [ ], Value Stack at time t ]
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ evaluated_value, [ evaluated_key, [ ] ] ], stack ]
- the expression at time t = entry key: value
then Return Value at time (t + 1) = entry evaluated_key: evaluated_value
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ evaluated_value, [ evaluated_key, [ ] ] ], stack ]
- the expression at time t = entry key: value
then Value Stack at time (t + 1) = stack
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (Python dictionary elements)
- expression state at time t = "not_expr"
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ a, [ Python reference idx, [ ] ] ], stack ]
- the expression at time t = function call with name: "__getitem__" and arguments: args
- the element at index idx of stack (Python Object Store at time t) = Python dictionary entries
then Return Value at time (t + 1) = value at a in map entries
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ value, [ key, [ Python reference idx, [ ] ] ] ], stack ]
- the expression at time t = function call with name: "__setitem__" and arguments: [ obj, rest ]
- the element at index idx of stack (Python Object Store at time t) = Python dictionary entries
then Python Object Store at time (t + 1) = result of storing (Python dictionary (result of storing value at key: key in map: entries)) at index idx of stack (Python Object Store at time t)
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ value, [ key, [ Python reference idx, [ ] ] ] ], stack ]
- the expression at time t = function call with name: "__setitem__" and arguments: [ obj, rest ]
- the element at index idx of stack (Python Object Store at time t) = Python dictionary entries
then Value Stack at time (t + 1) = stack
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ value, [ key, [ Python reference idx, [ ] ] ] ], stack ]
- the expression at time t = function call with name: "__setitem__" and arguments: [ obj, rest ]
- the element at index idx of stack (Python Object Store at time t) = Python list elements
then Python Object Store at time (t + 1) = result of storing (Python list (result of storing value at index key of stack elements)) at index idx of stack (Python Object Store at time t)
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ value, [ key, [ Python reference idx, [ ] ] ] ], stack ]
- the expression at time t = function call with name: "__setitem__" and arguments: [ obj, rest ]
- the element at index idx of stack (Python Object Store at time t) = Python list elements
then Value Stack at time (t + 1) = stack
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (Python constructor with name: name and arguments: args)
- expression state at time t = "not_expr"
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- expression state at time t = "begin_expr"
- the expression at time t = Python constructor with name: class_name and arguments: args
then Value Stack at time (t + 1) = [ [ ], Value Stack at time t ]
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ evaluated, stack ]
- the expression at time t = Python constructor with name: class_name and arguments: args
then expression state at time (t + 1) = "call_build_args"
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ evaluated, stack ]
- the expression at time t = Python constructor with name: class_name and arguments: args
then Value Stack at time (t + 1) = stack
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ evaluated, stack ]
- the expression at time t = Python constructor with name: class_name and arguments: args
then Argument Values at time (t + 1) = reverse of evaluated
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = assign statement with target x and expression (obj.attr)
- expression state at time t = "not_expr"
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- expression state at time t = "begin_expr"
- the expression at time t = obj.attr
then Value Stack at time (t + 1) = [ [ ], Value Stack at time t ]
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- the expression at time t = obj.attr
- Value Stack at time t = [ [ Python reference index, [ ] ], v_stack ]
then Value Stack at time (t + 1) = v_stack
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- the expression at time t = obj.attr
- Value Stack at time t = [ [ Python reference index, [ ] ], v_stack ]
- the element at index index of stack (Python Object Store at time t) = Python object: attributes
then Return Value at time (t + 1) = value at attr in map attributes
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = obj.key = value
- expression state at time t = "not_expr"
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- expression state at time t = "begin_expr"
- the expression at time t = obj.key = value
then Value Stack at time (t + 1) = [ [ ], Value Stack at time t ]
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ [ value, [ Python reference idx, [ ] ] ], stack ]
- the expression at time t = obj.attribute = val
- the element at index idx of stack (Python Object Store at time t) = Python object: entries
then Python Object Store at time (t + 1) = result of storing (Python object: (result of storing value at key: attribute in map: entries)) at index idx of stack (Python Object Store at time t)
(link) - if the following are true:
- expression state at time t = "call_function_begin"
- Value Stack at time t = [ values, stack ]
- the expression at time t = x.y = z
then Value Stack at time (t + 1) = stack
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab k = s
- k < j
- value at (j - 1) in map (Control Map at time t) = pair ("method", mname)
- stack at time t = [ program context with variables: varis and expression state: (expression state with parent stack: parent_stack arguments: arg_stack values: value_stack line: line tab: tab) and control map: control_map, rest ]
then Value Stack at time (t + 1) = value_stack
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
for target in iterable:
- map (Control Map at time t) does not contain a for loop entry at line: i and tab: j
- expression state at time t = "not_expr"
then Value Stack at time (t + 1) = [ ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = c
- c is constant
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = x
- c is a variable
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = function call with name: name and arguments: args
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is constant
then Expression Stack at time (t + 1) = [ ys, rest ]
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is constant
then Value Stack at time (t + 1) = [ [ x, values ], v_rest ]
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is constant
then Parameters List at time (t + 1) = None
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is constant
then the line at time (t + 1) = the line at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is constant
then the tab at time (t + 1) = the tab at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is constant
then Variables Map at time (t + 1) = Variables Map at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is constant
then Control Map at time (t + 1) = Control Map at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is constant
then Python Object Store at time (t + 1) = Python Object Store at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is constant
then Context Stack at time (t + 1) = Context Stack at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is a variable
then Expression Stack at time (t + 1) = [ ys, rest ]
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is a variable
then Value Stack at time (t + 1) = [ [ value at x in map (Variables Map at time t), values ], v_rest ]
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is a variable
then Parameters List at time (t + 1) = None
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is a variable
then the line at time (t + 1) = the line at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is a variable
then the tab at time (t + 1) = the tab at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is a variable
then Variables Map at time (t + 1) = Variables Map at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is a variable
then Control Map at time (t + 1) = Control Map at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is a variable
then Python Object Store at time (t + 1) = Python Object Store at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ x, ys ], rest ]
- Value Stack at time t = [ values, v_rest ]
- x is a variable
then Context Stack at time (t + 1) = Context Stack at time t
(link) - if Expression Stack at time t = [ [ function call with name: name and arguments: args, ys ], rest ], then Value Stack at time (t + 1) = [ [ ], Value Stack at time t ] (link)
- if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: "__add__" and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ [ a, [ b, [ ] ] ], [ next_level, other_levels ] ]
then Value Stack at time (t + 1) = [ [ b + a, next_level ], other_levels ]
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: "__mul__" and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ [ a, [ b, [ ] ] ], [ next_level, other_levels ] ]
then Value Stack at time (t + 1) = [ [ b ⋅ a, next_level ], other_levels ]
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: "__eq__" and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ [ a, [ b, [ ] ] ], [ next_level, other_levels ] ]
then Value Stack at time (t + 1) = [ [ b = a, next_level ], other_levels ]
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: "__lt__" and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ [ a, [ b, [ ] ] ], [ next_level, other_levels ] ]
then Value Stack at time (t + 1) = [ [ b < a, next_level ], other_levels ]
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: "__gt__" and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ [ a, [ b, [ ] ] ], [ next_level, other_levels ] ]
then Value Stack at time (t + 1) = [ [ b > a, next_level ], other_levels ]
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ values, v_rest ]
- there is a function named name with parameters params at line line
- Parameters List at time t = None
then Parameters List at time (t + 1) = params
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ values, v_rest ]
- there is a function named name with parameters params at line line
- Parameters List at time t = None
then Argument Values at time (t + 1) = reverse of values
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ values, v_rest ]
- there is a function named name with parameters params at line line
- Parameters List at time t = None
then Function Variables Map at time (t + 1) = [ ]
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ values, v_rest ]
- there is a function named name with parameters params at line line
- Parameters List at time t = None
then Value Stack at time (t + 1) = v_rest
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ values, v_rest ]
- there is a function named name with parameters params at line line
- Parameters List at time t = None
then Expression Stack at time (t + 1) = Expression Stack at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ values, v_rest ]
- there is a function named name with parameters params at line line
- Parameters List at time t = None
then Variables Map at time (t + 1) = Variables Map at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ values, v_rest ]
- there is a function named name with parameters params at line line
- Parameters List at time t = None
then Control Map at time (t + 1) = Control Map at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ values, v_rest ]
- there is a function named name with parameters params at line line
- Parameters List at time t = None
then Python Object Store at time (t + 1) = Python Object Store at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ values, v_rest ]
- there is a function named name with parameters params at line line
- Parameters List at time t = None
then Context Stack at time (t + 1) = Context Stack at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ values, v_rest ]
- there is a function named name with parameters params at line line
- Parameters List at time t = None
then the line at time (t + 1) = the line at time t
(link) - if the following are true:
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ values, v_rest ]
- there is a function named name with parameters params at line line
- Parameters List at time t = None
then the tab at time (t + 1) = the tab at time t
(link) - if Parameters List at time t = [ var, frest ], then Value Stack at time (t + 1) = Value Stack at time t (link)
- if Parameters List at time t = [ ], then Context Stack at time (t + 1) = [ program context with variables: (Variables Map at time t) and expression state: (expression state with expression stack: (Expression Stack at time t) values: (Value Stack at time t) line: (the line at time t) tab: (the tab at time t)) and control map: (Control Map at time t), Context Stack at time t ] (link)
- if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Value Stack at time (t + 1) = [ [ r, next_level ], other_levels ]
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Expression Stack at time (t + 1) = [ ys, rest ]
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Return Value at time (t + 1) = [ ]
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Parameters List at time (t + 1) = None
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Variables Map at time (t + 1) = Variables Map at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Control Map at time (t + 1) = Control Map at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Python Object Store at time (t + 1) = Python Object Store at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then Context Stack at time (t + 1) = Context Stack at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then the line at time (t + 1) = the line at time t
(link) - if the following are true:
- Return Value at time t = [ r, [ ] ]
- Expression Stack at time t = [ [ ], [ [ function call with name: name and arguments: args, ys ], rest ] ]
- Value Stack at time t = [ next_level, other_levels ]
then the tab at time (t + 1) = the tab at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
target = expr
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
target = expr
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Variables Map at time (t + 1) = result of storing value at key: target in map: (Variables Map at time t)
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
target = expr
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then the line at time (t + 1) = i + 1
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
target = expr
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then the tab at time (t + 1) = the tab at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
target = expr
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Control Map at time (t + 1) = Control Map at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
target = expr
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Python Object Store at time (t + 1) = Python Object Store at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
target = expr
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Context Stack at time (t + 1) = Context Stack at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
if expr:
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
if expr:
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ True, [ ] ], [ ] ]
then the line at time (t + 1) = i + 1
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
if expr:
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ True, [ ] ], [ ] ]
then the tab at time (t + 1) = j + 1
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
if expr:
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ True, [ ] ], [ ] ]
then Control Map at time (t + 1) = result of storing (pair ("if", True)) at key: j in map: (Control Map at time t)
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
if expr:
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ False, [ ] ], [ ] ]
then the line at time (t + 1) = i + 1
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
if expr:
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ False, [ ] ], [ ] ]
then the tab at time (t + 1) = j
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
if expr:
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ False, [ ] ], [ ] ]
then Control Map at time (t + 1) = result of storing (pair ("if", False)) at key: j in map: (Control Map at time t)
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
elif test:
- value at j in map (Control Map at time t) = pair ("if", False)
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
elif expr:
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ True, [ ] ], [ ] ]
then the line at time (t + 1) = i + 1
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
elif expr:
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ True, [ ] ], [ ] ]
then the tab at time (t + 1) = j + 1
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
elif expr:
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ True, [ ] ], [ ] ]
then Control Map at time (t + 1) = result of storing (pair ("if", True)) at key: j in map: (Control Map at time t)
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
elif expr:
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ False, [ ] ], [ ] ]
then the line at time (t + 1) = i + 1
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
elif expr:
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ False, [ ] ], [ ] ]
then the tab at time (t + 1) = j
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
elif expr:
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ False, [ ] ], [ ] ]
then Control Map at time (t + 1) = Control Map at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
while test:
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = "while" statement with condition (function call with name: name and arguments: args)
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ True, [ ] ], [ ] ]
then the tab at time (t + 1) = j + 1
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = "while" statement with condition (function call with name: name and arguments: args)
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ True, [ ] ], [ ] ]
then Control Map at time (t + 1) = result of storing (pair ("while", i)) at key: j in map: (Control Map at time t)
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = "while" statement with condition (function call with name: name and arguments: args)
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ False, [ ] ], [ ] ]
then the tab at time (t + 1) = j
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j = "while" statement with condition (function call with name: name and arguments: args)
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ False, [ ] ], [ ] ]
then Control Map at time (t + 1) = Control Map at time t
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
return rex
- Expression Stack at time t = [ ]
then Value Stack at time (t + 1) = [ [ ], [ ] ]
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
return rex
- Context Stack at time t = [ program context with variables: vars and expression state: (expression state with expression stack: expr_stack values: value_stack line: line tab: tab) and control map: control_map, rest ]
- Expression Stack at time t = [ [ ], [ ] ]
then Value Stack at time (t + 1) = value_stack
(link) - if the following are true:
- the line at time t = i
- the tab at time t = j
- statement at line i, tab j =
return rex
- Expression Stack at time t = [ [ ], [ ] ]
- Value Stack at time t = [ [ value, [ ] ], [ ] ]
then Return Value at time (t + 1) = [ value, [ ] ]
(link)
Comments
Please log in to add comments