| #!/usr/bin/env python |
| # |
| # ====-- Function class for libc function headers -------------*- python -*--==# |
| # |
| # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| # See https://llvm.org/LICENSE.txt for license information. |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| # |
| # ==-------------------------------------------------------------------------==# |
| |
| |
| class Function: |
| def __init__( |
| self, return_type, name, arguments, standards, guard=None, attributes=[] |
| ): |
| self.return_type = return_type |
| self.name = name |
| self.arguments = [ |
| arg if isinstance(arg, str) else arg["type"] for arg in arguments |
| ] |
| self.standards = standards |
| self.guard = guard |
| self.attributes = attributes or "" |
| |
| def __str__(self): |
| attributes_str = " ".join(self.attributes) |
| arguments_str = ", ".join(self.arguments) |
| if attributes_str == "": |
| result = f"{self.return_type} {self.name}({arguments_str})" |
| else: |
| result = f"{attributes_str} {self.return_type} {self.name}({arguments_str})" |
| return result |