| # Copyright (c) Barefoot Networks, Inc. |
| # Licensed under the Apache License, Version 2.0 (the "License") |
| |
| class CompilationException(Exception): |
| """Signals an error during compilation""" |
| def __init__(self, isBug, format, *message): |
| # isBug: indicates that this is a compiler bug |
| super(CompilationException, self).__init__() |
| |
| assert isinstance(format, str) |
| assert isinstance(isBug, bool) |
| self.message = message |
| self.format = format |
| self.isBug = isBug |
| |
| def show(self): |
| # TODO: format this message nicely |
| return self.format.format(*self.message) |
| |
| |
| class NotSupportedException(Exception): |
| archError = " not supported by EBPF" |
| |
| def __init__(self, format, *message): |
| super(NotSupportedException, self).__init__() |
| |
| assert isinstance(format, str) |
| self.message = message |
| self.format = format |
| |
| def show(self): |
| # TODO: format this message nicely |
| return (self.format + NotSupportedException.archError).format( |
| *self.message) |