
Two extra layers of subdirectory for a handful of single-symbol Python source files did not improve anything, and it complicated integration of the hdrgen Python outside the LLVM CMake build.
31 lines
1.1 KiB
Python
31 lines
1.1 KiB
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
|