blob: e42e82845694d7456605e280553edc2ad3084bfe [file] [log] [blame]
# ====-- Macro 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
#
# ==-------------------------------------------------------------------------==#
from functools import total_ordering
@total_ordering
class Macro:
def __init__(self, name, value=None, header=None):
self.name = name
self.value = value
self.header = header
def __eq__(self, other):
return self.name == other.name
def __lt__(self, other):
return self.name < other.name
def __hash__(self):
return self.name.__hash__()
def __str__(self):
if self.header != None:
return ""
if self.value != None:
return f"#define {self.name} {self.value}"
return f"#define {self.name}"