<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def subcomponents(self, subcomponents):
 """Generate subcomponents of the BEL subject or object These subcomponents are used for matching parts of a BEL subject or Object in the Edgestore. Args: AST subcomponents: Pass an empty list to start a new subcomponents request Returns: List[str]: subcomponents of BEL subject or object """


        for arg in self.args:
            if arg.__class__.__name__ == "Function":
                subcomponents.append(arg.to_string())
                if arg.function_type == "primary":
                    arg.subcomponents(subcomponents)
            else:
                subcomponents.append(arg.to_string())

        return subcomponents