Extracts all variable assignments from the body of the executable.

        :arg mode: for real-time update; either 'insert', 'delete' or 'replace'.

def _process_assignments(self, anexec, contents, mode="insert"):
        """Extracts all variable assignments from the body of the executable.

        :arg mode: for real-time update; either 'insert', 'delete' or 'replace'.
        """
        for assign in self.RE_ASSIGN.finditer(contents):
            assignee = assign.group("assignee").strip()
            target = re.split(r"[(%\s]", assignee)[0].lower()

            #We only want to include variables that we know are in the scope of the
            #current executable. This excludes function calls etc. with optional params.
            if target in self._intrinsic:
                continue

            if target in anexec.members or \
               target in anexec.parameters or \
               (isinstance(anexec, Function) and target.lower() == anexec.name.lower()):
                if mode == "insert":
                    anexec.add_assignment(re.split(r"[(\s]", assignee)[0])
                elif mode == "delete":
                    #Remove the first instance of this assignment from the list
                    try:
                        index = element.assignments.index(assign)
                        del element.assignments[index]
                    except ValueError:
                        #We didn't have anything to remove, but python
                        pass